; ModuleID = 'visitor.cpp'
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32-S128"
target triple = "i386-pc-linux-gnu"

%"class.std::ios_base::Init" = type { i8 }
%"class.boost::detail::make_property_map_from_arg_pack_gen" = type { i32 }
%"class.std::basic_ostream" = type { i32 (...)**, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", %"class.std::basic_ostream"*, i8, i8, %"class.std::basic_streambuf"*, %"class.std::ctype"*, %"class.std::num_put"*, %"class.std::num_get"* }
%"class.std::ios_base" = type { i32 (...)**, i32, i32, i32, i32, i32, %"struct.std::ios_base::_Callback_list"*, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, %"struct.std::ios_base::_Words"*, %"class.std::locale" }
%"struct.std::ios_base::_Callback_list" = type { %"struct.std::ios_base::_Callback_list"*, void (i32, %"class.std::ios_base"*, i32)*, i32, i32 }
%"struct.std::ios_base::_Words" = type { i8*, i32 }
%"class.std::locale" = type { %"class.std::locale::_Impl"* }
%"class.std::locale::_Impl" = type { i32, %"class.std::locale::facet"**, i32, %"class.std::locale::facet"**, i8** }
%"class.std::locale::facet" = type { i32 (...)**, i32 }
%"class.std::basic_streambuf" = type { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, %"class.std::locale" }
%"class.std::ctype" = type { %"class.std::locale::facet", %struct.__locale_struct*, i8, i32*, i32*, i16*, i8, [256 x i8], [256 x i8], i8 }
%struct.__locale_struct = type { [13 x %struct.__locale_data*], i16*, i32*, i32*, [13 x i8*] }
%struct.__locale_data = type opaque
%"class.std::num_put" = type { %"class.std::locale::facet" }
%"class.std::num_get" = type { %"class.std::locale::facet" }
%"struct.boost::parameter::keyword" = type { i8 }
%"struct.boost::parameter::keyword.44" = type { i8 }
%"struct.boost::parameter::keyword.46" = type { i8 }
%"struct.boost::parameter::keyword.47" = type { i8 }
%"struct.std::pair" = type { i32, i32 }
%"class.boost::adjacency_list" = type { %"class.boost::vec_adj_list_impl", %"class.boost::scoped_ptr" }
%"class.boost::vec_adj_list_impl" = type { %"class.std::list", %"class.std::vector" }
%"class.std::list" = type { %"class.std::_List_base" }
%"class.std::_List_base" = type { %"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl" }
%"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl" = type { %"struct.std::__detail::_List_node_base" }
%"struct.std::__detail::_List_node_base" = type { %"struct.std::__detail::_List_node_base"*, %"struct.std::__detail::_List_node_base"* }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl" }
%"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl" = type { %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* }
%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex" = type { %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex" }
%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex" = type { %"class.std::vector.21", %"struct.boost::no_property" }
%"class.std::vector.21" = type { %"struct.std::_Vector_base.22" }
%"struct.std::_Vector_base.22" = type { %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl" }
%"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl" = type { %"class.boost::detail::stored_edge_property"*, %"class.boost::detail::stored_edge_property"*, %"class.boost::detail::stored_edge_property"* }
%"class.boost::detail::stored_edge_property" = type { %"class.boost::detail::stored_edge", %"class.std::auto_ptr" }
%"class.boost::detail::stored_edge" = type { i32 }
%"class.std::auto_ptr" = type { %"struct.boost::no_property"* }
%"struct.boost::no_property" = type { i8 }
%"class.boost::scoped_ptr" = type { %"struct.boost::no_property"* }
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl" = type { i32*, i32*, i32* }
%"class.std::allocator.5" = type { i8 }
%"struct.boost::bgl_named_params" = type { %"class.boost::dfs_visitor", %"struct.boost::no_property" }
%"class.boost::dfs_visitor" = type { %"struct.std::pair.8" }
%"struct.std::pair.8" = type { %struct.edge_printer, %"struct.std::pair.12" }
%struct.edge_printer = type { %"class.std::basic_string" }
%"class.std::basic_string" = type { %"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider" }
%"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider" = type { i8* }
%"struct.std::pair.12" = type { %struct.edge_printer.13, %struct.edge_printer.15 }
%struct.edge_printer.13 = type { %"class.std::basic_string" }
%struct.edge_printer.15 = type { %"class.std::basic_string" }
%"class.std::allocator.9" = type { i8 }
%"struct.boost::on_tree_edge" = type { i8 }
%"struct.boost::on_back_edge" = type { i8 }
%"struct.boost::on_forward_or_cross_edge" = type { i8 }
%"struct.boost::bgl_named_params.17" = type { %"class.boost::bfs_visitor", %"struct.boost::no_property" }
%"class.boost::bfs_visitor" = type { %"struct.std::pair.18" }
%"struct.std::pair.18" = type { %struct.edge_printer, %struct.edge_printer.19 }
%struct.edge_printer.19 = type { %"class.std::basic_string" }
%"struct.boost::on_non_tree_edge" = type { i8 }
%"struct.boost::adj_list_helper" = type { i8 }
%"class.boost::integer_range" = type { %"class.boost::iterator_range" }
%"class.boost::iterator_range" = type { %"class.boost::range_detail::integer_iterator", %"class.boost::range_detail::integer_iterator" }
%"class.boost::range_detail::integer_iterator" = type { i32 }
%"struct.boost::parameter::aux::arg_list" = type { %"struct.boost::parameter::aux::tagged_argument" }
%"struct.boost::parameter::aux::tagged_argument" = type { %"class.boost::dfs_visitor"* }
%"struct.boost::param_not_found" = type { i8 }
%"struct.boost::null_visitor" = type { i8 }
%"struct.boost::two_bit_color_map" = type { i32, %"struct.boost::vec_adj_list_vertex_id_map", %"class.boost::shared_array" }
%"struct.boost::vec_adj_list_vertex_id_map" = type { i8 }
%"class.boost::shared_array" = type { i8*, %"class.boost::detail::shared_count" }
%"class.boost::detail::shared_count" = type { %"class.boost::detail::sp_counted_base"* }
%"class.boost::detail::sp_counted_base" = type { i32 (...)**, i32, i32 }
%"class.boost::bfs_visitor.27" = type { %"struct.boost::null_visitor" }
%"class.boost::queue" = type { %"class.std::deque" }
%"class.std::deque" = type { %"class.std::_Deque_base" }
%"class.std::_Deque_base" = type { %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl" }
%"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl" = type { i32**, i32, %"struct.std::_Deque_iterator", %"struct.std::_Deque_iterator" }
%"struct.std::_Deque_iterator" = type { i32*, i32*, i32*, i32** }
%"struct.boost::buffer_param_t" = type { i8 }
%"class.boost::reference_wrapper" = type { %"class.boost::queue"* }
%"struct.mpl_::bool_" = type { i8 }
%"struct.boost::base_visitor.20" = type { i8 }
%"struct.boost::base_visitor" = type { i8 }
%"struct.boost::vertex_property_tag" = type { i8 }
%"struct.boost::put_get_helper" = type { i8 }
%"struct.boost::checked_array_deleter" = type { i8 }
%"class.boost::detail::sp_counted_impl_pd" = type { %"class.boost::detail::sp_counted_base", i8*, %"struct.boost::checked_array_deleter" }
%"class.std::type_info" = type { i32 (...)**, i8* }
%"class.std::allocator.28" = type { i8 }
%"class.__gnu_cxx::new_allocator.29" = type { i8 }
%"class.__gnu_cxx::new_allocator.6" = type { i8 }
%"struct.boost::detail::addr_impl_ref" = type { %"class.boost::queue"* }
%"class.boost::tuples::tuple" = type { %"struct.boost::tuples::cons" }
%"struct.boost::tuples::cons" = type { %"class.boost::range_detail::integer_iterator"*, %"struct.boost::tuples::cons.31" }
%"struct.boost::tuples::cons.31" = type { %"class.boost::range_detail::integer_iterator"* }
%"struct.std::pair.32" = type { %"class.boost::range_detail::integer_iterator", %"class.boost::range_detail::integer_iterator" }
%"struct.boost::graph::bfs_visitor_event_not_overridden" = type { i8 }
%"class.boost::iterator_facade" = type { i8 }
%"struct.boost::is_convertible.40" = type { i8 }
%"struct.boost::on_initialize_vertex" = type { i8 }
%"struct.boost::detail::out_edge_iter" = type { %"class.boost::iterator_adaptor", i32 }
%"class.boost::iterator_adaptor" = type { %"class.__gnu_cxx::__normal_iterator" }
%"class.__gnu_cxx::__normal_iterator" = type { %"class.boost::detail::stored_edge_property"* }
%"class.boost::tuples::tuple.34" = type { %"struct.boost::tuples::cons.35" }
%"struct.boost::tuples::cons.35" = type { %"struct.boost::detail::out_edge_iter"*, %"struct.boost::tuples::cons.36" }
%"struct.boost::tuples::cons.36" = type { %"struct.boost::detail::out_edge_iter"* }
%"struct.std::pair.37" = type { %"struct.boost::detail::out_edge_iter", %"struct.boost::detail::out_edge_iter" }
%"class.boost::detail::edge_desc_impl" = type { %"struct.boost::detail::edge_base", i8* }
%"struct.boost::detail::edge_base" = type { i32, i32 }
%"class.boost::iterator_facade.33" = type { i8 }
%"struct.boost::on_discover_vertex" = type { i8 }
%"struct.boost::on_examine_vertex" = type { i8 }
%"struct.boost::is_convertible" = type { i8 }
%"struct.boost::on_examine_edge" = type { i8 }
%"struct.boost::on_gray_target" = type { i8 }
%"struct.boost::on_black_target" = type { i8 }
%"struct.boost::on_finish_vertex" = type { i8 }
%"struct.mpl_::bool_.38" = type { i8 }
%"struct.boost::integral_constant" = type { i8 }
%"struct.boost::integral_constant.39" = type { i8 }
%"struct.boost::tuples::null_type" = type { i8 }
%"struct.boost::parameter::aux::empty_arg_list" = type { i8 }
%"struct.boost::graph::detail::depth_first_search_impl" = type { i8 }
%"struct.boost::parameter::aux::default_" = type { %"class.boost::dfs_visitor.43"* }
%"class.boost::dfs_visitor.43" = type { %"struct.boost::null_visitor" }
%"class.boost::shared_array_property_map" = type { %"class.boost::shared_array.42", %"struct.boost::vec_adj_list_vertex_id_map" }
%"class.boost::shared_array.42" = type { i32*, %"class.boost::detail::shared_count" }
%"struct.boost::parameter::aux::lazy_default" = type { %"struct.boost::detail::get_default_starting_vertex_t"* }
%"struct.boost::detail::get_default_starting_vertex_t" = type { %"class.boost::adjacency_list"* }
%"struct.boost::detail::nontruth2" = type { i8 }
%"struct.boost::put_get_helper.41" = type { i8 }
%"struct.boost::parameter::aux::default_.45" = type { i32* }
%"struct.boost::detail::override_const_property_t" = type { i8 }
%"struct.boost::parameter::aux::default_.48" = type { i32* }
%"struct.boost::checked_array_deleter.49" = type { i8 }
%"class.boost::detail::sp_counted_impl_pd.50" = type { %"class.boost::detail::sp_counted_base", i32*, %"struct.boost::checked_array_deleter.49" }
%"struct.boost::base_visitor.16" = type { i8 }
%"struct.boost::base_visitor.14" = type { i8 }
%"struct.boost::on_start_vertex" = type { i8 }
%"class.std::vector.51" = type { %"struct.std::_Vector_base.52" }
%"struct.std::_Vector_base.52" = type { %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl" = type { %"struct.std::pair.56"*, %"struct.std::pair.56"*, %"struct.std::pair.56"* }
%"struct.std::pair.56" = type { i32, %"struct.std::pair.37" }
%"class.__gnu_cxx::__normal_iterator.57" = type { %"struct.std::pair.56"* }
%"class.__gnu_cxx::new_allocator.54" = type { i8 }
%"class.__gnu_cxx::__normal_iterator.58" = type { %"struct.std::pair.56"* }
%"class.std::allocator.53" = type { i8 }
%"struct.boost::parameter::aux::tagged_argument_base" = type { i8 }
%"struct.boost::graph::maybe_named_graph" = type { i8 }
%"class.std::allocator.0" = type { i8 }
%"struct.std::pair.63" = type { %"class.boost::detail::edge_desc_impl", i8 }
%"struct.std::_List_node" = type { %"struct.std::__detail::_List_node_base", %"struct.boost::list_edge" }
%"struct.boost::list_edge" = type { %"struct.boost::detail::edge_base.59", %"struct.boost::no_property" }
%"struct.boost::detail::edge_base.59" = type { i32, i32 }
%"class.std::allocator.60" = type { i8 }
%"class.__gnu_cxx::new_allocator.61" = type { i8 }
%"class.std::allocator" = type { i8 }
%"class.__gnu_cxx::new_allocator" = type { i8 }
%"class.__gnu_cxx::new_allocator.1" = type { i8 }
%"class.std::allocator.23" = type { i8 }
%"class.__gnu_cxx::new_allocator.24" = type { i8 }
%"struct.boost::directed_graph_helper" = type { i8 }
%"class.__gnu_cxx::__normal_iterator.68" = type { %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* }
%"class.boost::tuples::tuple.64" = type { %"struct.boost::tuples::cons.65" }
%"struct.boost::tuples::cons.65" = type { %"class.__gnu_cxx::__normal_iterator"*, %"struct.boost::tuples::cons.66" }
%"struct.boost::tuples::cons.66" = type { i8* }
%"struct.std::pair.67" = type { %"class.__gnu_cxx::__normal_iterator", i8 }
%"struct.boost::graph_detail::back_insertion_sequence_tag" = type { %"struct.boost::graph_detail::sequence_tag" }
%"struct.boost::graph_detail::sequence_tag" = type { %"struct.boost::graph_detail::forward_container_tag" }
%"struct.boost::graph_detail::forward_container_tag" = type { i32 (...)** }
%"struct.boost::graph_detail::vector_tag" = type { %"struct.boost::graph_detail::random_access_container_tag", %"struct.boost::graph_detail::back_insertion_sequence_tag" }
%"struct.boost::graph_detail::random_access_container_tag" = type { %"struct.boost::graph_detail::reversible_container_tag" }
%"struct.boost::graph_detail::reversible_container_tag" = type { %"struct.boost::graph_detail::forward_container_tag" }
%"struct.boost::equality_comparable1" = type { i8 }
%"struct.boost::graph_detail::container_tag" = type { i8 }
%"class.__gnu_cxx::__normal_iterator.69" = type { %"class.boost::detail::stored_edge_property"* }

@_ZStL8__ioinit = internal global %"class.std::ios_base::Init" zeroinitializer, align 1
@__dso_handle = external global i8
@_ZN5boost6detailL28make_color_map_from_arg_packE = internal global %"class.boost::detail::make_property_map_from_arg_pack_gen" zeroinitializer, align 4
@_ZSt4cout = external global %"class.std::basic_ostream"
@.str = private unnamed_addr constant [31 x i8] c"DFS categorized directed graph\00", align 1
@.str2 = private unnamed_addr constant [5 x i8] c"tree\00", align 1
@.str3 = private unnamed_addr constant [5 x i8] c"back\00", align 1
@.str4 = private unnamed_addr constant [17 x i8] c"forward or cross\00", align 1
@.str5 = private unnamed_addr constant [31 x i8] c"BFS categorized directed graph\00", align 1
@.str6 = private unnamed_addr constant [6 x i8] c"cycle\00", align 1
@_ZTVN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEEE = linkonce_odr unnamed_addr constant [7 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTIN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEEE to i8*), i8* bitcast (void (%"class.boost::detail::sp_counted_impl_pd"*)* @_ZN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEED1Ev to i8*), i8* bitcast (void (%"class.boost::detail::sp_counted_impl_pd"*)* @_ZN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEED0Ev to i8*), i8* bitcast (void (%"class.boost::detail::sp_counted_impl_pd"*)* @_ZN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEE7disposeEv to i8*), i8* bitcast (void (%"class.boost::detail::sp_counted_base"*)* @_ZN5boost6detail15sp_counted_base7destroyEv to i8*), i8* bitcast (i8* (%"class.boost::detail::sp_counted_impl_pd"*, %"class.std::type_info"*)* @_ZN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEE11get_deleterERKSt9type_info to i8*)]
@_ZTVN10__cxxabiv120__si_class_type_infoE = external global i8*
@_ZTSN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEEE = linkonce_odr constant [70 x i8] c"N5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEEE\00"
@_ZTVN10__cxxabiv117__class_type_infoE = external global i8*
@_ZTSN5boost6detail15sp_counted_baseE = linkonce_odr constant [33 x i8] c"N5boost6detail15sp_counted_baseE\00"
@_ZTIN5boost6detail15sp_counted_baseE = linkonce_odr unnamed_addr constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv117__class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([33 x i8]* @_ZTSN5boost6detail15sp_counted_baseE, i32 0, i32 0) }
@_ZTIN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEEE = linkonce_odr unnamed_addr constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([70 x i8]* @_ZTSN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEEE, i32 0, i32 0), i8* bitcast ({ i8*, i8* }* @_ZTIN5boost6detail15sp_counted_baseE to i8*) }
@_ZTSN5boost21checked_array_deleterIhEE = linkonce_odr constant [35 x i8] c"N5boost21checked_array_deleterIhEE\00"
@_ZTIN5boost21checked_array_deleterIhEE = linkonce_odr unnamed_addr constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv117__class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([35 x i8]* @_ZTSN5boost21checked_array_deleterIhEE, i32 0, i32 0) }
@_ZTVN5boost6detail15sp_counted_baseE = linkonce_odr unnamed_addr constant [7 x i8*] [i8* null, i8* bitcast ({ i8*, i8* }* @_ZTIN5boost6detail15sp_counted_baseE to i8*), i8* bitcast (void (%"class.boost::detail::sp_counted_base"*)* @_ZN5boost6detail15sp_counted_baseD1Ev to i8*), i8* bitcast (void (%"class.boost::detail::sp_counted_base"*)* @_ZN5boost6detail15sp_counted_baseD0Ev to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void (%"class.boost::detail::sp_counted_base"*)* @_ZN5boost6detail15sp_counted_base7destroyEv to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*)]
@.str7 = private unnamed_addr constant [3 x i8] c": \00", align 1
@.str8 = private unnamed_addr constant [6 x i8] c" --> \00", align 1
@_ZZN5boost3getINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEENS_18two_bit_color_typeERKNS_17two_bit_color_mapIT_EENS_15property_traitsIS6_E8key_typeEE17elements_per_char = linkonce_odr constant i32 4, align 4
@.str9 = private unnamed_addr constant [22 x i8] c"(std::size_t)i < pm.n\00", align 1
@.str10 = private unnamed_addr constant [60 x i8] c"/home/thomas/boost_1_52_0/boost/graph/two_bit_color_map.hpp\00", align 1
@__PRETTY_FUNCTION__._ZN5boost3getINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEENS_18two_bit_color_typeERKNS_17two_bit_color_mapIT_EENS_15property_traitsIS6_E8key_typeE = private unnamed_addr constant [201 x i8] c"boost::two_bit_color_type boost::get(const two_bit_color_map<IndexMap> &, typename property_traits<IndexMap>::key_type) [IndexMap = boost::vec_adj_list_vertex_id_map<boost::no_property, unsigned int>]\00", align 1
@_ZZN5boost3putINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEEvRKNS_17two_bit_color_mapIT_EENS_15property_traitsIS5_E8key_typeENS_18two_bit_color_typeEE17elements_per_char = linkonce_odr constant i32 4, align 4
@__PRETTY_FUNCTION__._ZN5boost3putINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEEvRKNS_17two_bit_color_mapIT_EENS_15property_traitsIS5_E8key_typeENS_18two_bit_color_typeE = private unnamed_addr constant [207 x i8] c"void boost::put(const two_bit_color_map<IndexMap> &, typename property_traits<IndexMap>::key_type, boost::two_bit_color_type) [IndexMap = boost::vec_adj_list_vertex_id_map<boost::no_property, unsigned int>]\00", align 1
@.str11 = private unnamed_addr constant [24 x i8] c"value >= 0 && value < 4\00", align 1
@_ZN5boost5graph8keywords12_GLOBAL__N_18_visitorE = internal constant %"struct.boost::parameter::keyword"* @_ZN5boost9parameter7keywordINS_5graph8keywords3tag7visitorEE8instanceE, align 4
@_ZN5boost5graph8keywords12_GLOBAL__N_112_root_vertexE = internal constant %"struct.boost::parameter::keyword.44"* @_ZN5boost9parameter7keywordINS_5graph8keywords3tag11root_vertexEE8instanceE, align 4
@_ZN5boost9parameter7keywordINS_5graph8keywords3tag11root_vertexEE8instanceE = weak_odr constant %"struct.boost::parameter::keyword.44" undef, align 1
@_ZN5boost9parameter7keywordINS_5graph8keywords3tag9color_mapEE8instanceE = weak_odr constant %"struct.boost::parameter::keyword.46" undef, align 1
@_ZN5boost5graph8keywords12_GLOBAL__N_117_vertex_index_mapE = internal constant %"struct.boost::parameter::keyword.47"* @_ZN5boost9parameter7keywordINS_5graph8keywords3tag16vertex_index_mapEE8instanceE, align 4
@_ZN5boost9parameter7keywordINS_5graph8keywords3tag16vertex_index_mapEE8instanceE = weak_odr constant %"struct.boost::parameter::keyword.47" undef, align 1
@_ZTVN5boost6detail18sp_counted_impl_pdIPNS_18default_color_typeENS_21checked_array_deleterIS2_EEEE = linkonce_odr unnamed_addr constant [7 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTIN5boost6detail18sp_counted_impl_pdIPNS_18default_color_typeENS_21checked_array_deleterIS2_EEEE to i8*), i8* bitcast (void (%"class.boost::detail::sp_counted_impl_pd.50"*)* @_ZN5boost6detail18sp_counted_impl_pdIPNS_18default_color_typeENS_21checked_array_deleterIS2_EEED1Ev to i8*), i8* bitcast (void (%"class.boost::detail::sp_counted_impl_pd.50"*)* @_ZN5boost6detail18sp_counted_impl_pdIPNS_18default_color_typeENS_21checked_array_deleterIS2_EEED0Ev to i8*), i8* bitcast (void (%"class.boost::detail::sp_counted_impl_pd.50"*)* @_ZN5boost6detail18sp_counted_impl_pdIPNS_18default_color_typeENS_21checked_array_deleterIS2_EEE7disposeEv to i8*), i8* bitcast (void (%"class.boost::detail::sp_counted_base"*)* @_ZN5boost6detail15sp_counted_base7destroyEv to i8*), i8* bitcast (i8* (%"class.boost::detail::sp_counted_impl_pd.50"*, %"class.std::type_info"*)* @_ZN5boost6detail18sp_counted_impl_pdIPNS_18default_color_typeENS_21checked_array_deleterIS2_EEE11get_deleterERKSt9type_info to i8*)]
@_ZTSN5boost6detail18sp_counted_impl_pdIPNS_18default_color_typeENS_21checked_array_deleterIS2_EEEE = linkonce_odr constant [95 x i8] c"N5boost6detail18sp_counted_impl_pdIPNS_18default_color_typeENS_21checked_array_deleterIS2_EEEE\00"
@_ZTIN5boost6detail18sp_counted_impl_pdIPNS_18default_color_typeENS_21checked_array_deleterIS2_EEEE = linkonce_odr unnamed_addr constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([95 x i8]* @_ZTSN5boost6detail18sp_counted_impl_pdIPNS_18default_color_typeENS_21checked_array_deleterIS2_EEEE, i32 0, i32 0), i8* bitcast ({ i8*, i8* }* @_ZTIN5boost6detail15sp_counted_baseE to i8*) }
@_ZTSN5boost21checked_array_deleterINS_18default_color_typeEEE = linkonce_odr constant [58 x i8] c"N5boost21checked_array_deleterINS_18default_color_typeEEE\00"
@_ZTIN5boost21checked_array_deleterINS_18default_color_typeEEE = linkonce_odr unnamed_addr constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv117__class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([58 x i8]* @_ZTSN5boost21checked_array_deleterINS_18default_color_typeEEE, i32 0, i32 0) }
@_ZN5boost9parameter7keywordINS_5graph8keywords3tag7visitorEE8instanceE = weak_odr constant %"struct.boost::parameter::keyword" undef, align 1
@.str12 = private unnamed_addr constant [8 x i8] c"px != 0\00", align 1
@.str13 = private unnamed_addr constant [59 x i8] c"/home/thomas/boost_1_52_0/boost/smart_ptr/shared_array.hpp\00", align 1
@__PRETTY_FUNCTION__._ZNK5boost12shared_arrayINS_18default_color_typeEEixEi = private unnamed_addr constant [116 x i8] c"T &boost::shared_array<boost::default_color_type>::operator[](std::ptrdiff_t) const [T = boost::default_color_type]\00", align 1
@.str14 = private unnamed_addr constant [7 x i8] c"i >= 0\00", align 1
@.str15 = private unnamed_addr constant [22 x i8] c"vector::_M_insert_aux\00", align 1
@_ZTVN5boost12graph_detail10vector_tagE = linkonce_odr unnamed_addr constant [13 x i8*] [i8* inttoptr (i32 4 to i8*), i8* inttoptr (i32 4 to i8*), i8* null, i8* null, i8* null, i8* null, i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32, i8*, i32 }* @_ZTIN5boost12graph_detail10vector_tagE to i8*), i8* null, i8* inttoptr (i32 -4 to i8*), i8* inttoptr (i32 -4 to i8*), i8* inttoptr (i32 -4 to i8*), i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32, i8*, i32 }* @_ZTIN5boost12graph_detail10vector_tagE to i8*)]
@_ZTTN5boost12graph_detail10vector_tagE = linkonce_odr unnamed_addr constant [17 x i8*] [i8* bitcast (i8** getelementptr inbounds ([13 x i8*]* @_ZTVN5boost12graph_detail10vector_tagE, i64 0, i64 8) to i8*), i8* bitcast (i8** getelementptr inbounds ([13 x i8*]* @_ZTVN5boost12graph_detail10vector_tagE, i64 0, i64 8) to i8*), i8* bitcast (i8** getelementptr inbounds ([13 x i8*]* @_ZTVN5boost12graph_detail10vector_tagE, i64 0, i64 8) to i8*), i8* bitcast (i8** getelementptr inbounds ([13 x i8*]* @_ZTVN5boost12graph_detail10vector_tagE, i64 0, i64 8) to i8*), i8* bitcast (i8** getelementptr inbounds ([13 x i8*]* @_ZTVN5boost12graph_detail10vector_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([13 x i8*]* @_ZTVN5boost12graph_detail10vector_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([5 x i8*]* @_ZTCN5boost12graph_detail10vector_tagE0_NS0_27random_access_container_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([5 x i8*]* @_ZTCN5boost12graph_detail10vector_tagE0_NS0_27random_access_container_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([5 x i8*]* @_ZTCN5boost12graph_detail10vector_tagE0_NS0_27random_access_container_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([4 x i8*]* @_ZTCN5boost12graph_detail10vector_tagE0_NS0_24reversible_container_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([4 x i8*]* @_ZTCN5boost12graph_detail10vector_tagE0_NS0_24reversible_container_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([3 x i8*]* @_ZTCN5boost12graph_detail10vector_tagE0_NS0_21forward_container_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([8 x i8*]* @_ZTCN5boost12graph_detail10vector_tagE4_NS0_27back_insertion_sequence_tagE, i64 0, i64 5) to i8*), i8* bitcast (i8** getelementptr inbounds ([8 x i8*]* @_ZTCN5boost12graph_detail10vector_tagE4_NS0_27back_insertion_sequence_tagE, i64 0, i64 5) to i8*), i8* bitcast (i8** getelementptr inbounds ([8 x i8*]* @_ZTCN5boost12graph_detail10vector_tagE4_NS0_27back_insertion_sequence_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([7 x i8*]* @_ZTCN5boost12graph_detail10vector_tagE4_NS0_12sequence_tagE, i64 0, i64 4) to i8*), i8* bitcast (i8** getelementptr inbounds ([7 x i8*]* @_ZTCN5boost12graph_detail10vector_tagE4_NS0_12sequence_tagE, i64 1, i64 0) to i8*)]
@_ZTVN10__cxxabiv121__vmi_class_type_infoE = external global i8*
@_ZTSN5boost12graph_detail10vector_tagE = linkonce_odr constant [35 x i8] c"N5boost12graph_detail10vector_tagE\00"
@_ZTSN5boost12graph_detail27random_access_container_tagE = linkonce_odr constant [52 x i8] c"N5boost12graph_detail27random_access_container_tagE\00"
@_ZTSN5boost12graph_detail24reversible_container_tagE = linkonce_odr constant [49 x i8] c"N5boost12graph_detail24reversible_container_tagE\00"
@_ZTSN5boost12graph_detail21forward_container_tagE = linkonce_odr constant [46 x i8] c"N5boost12graph_detail21forward_container_tagE\00"
@_ZTSN5boost12graph_detail13container_tagE = linkonce_odr constant [38 x i8] c"N5boost12graph_detail13container_tagE\00"
@_ZTIN5boost12graph_detail13container_tagE = linkonce_odr unnamed_addr constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv117__class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([38 x i8]* @_ZTSN5boost12graph_detail13container_tagE, i32 0, i32 0) }
@_ZTIN5boost12graph_detail21forward_container_tagE = linkonce_odr unnamed_addr constant { i8*, i8*, i32, i32, i8*, i32 } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv121__vmi_class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([46 x i8]* @_ZTSN5boost12graph_detail21forward_container_tagE, i32 0, i32 0), i32 0, i32 1, i8* bitcast ({ i8*, i8* }* @_ZTIN5boost12graph_detail13container_tagE to i8*), i32 -3069 }
@_ZTIN5boost12graph_detail24reversible_container_tagE = linkonce_odr unnamed_addr constant { i8*, i8*, i32, i32, i8*, i32 } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv121__vmi_class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([49 x i8]* @_ZTSN5boost12graph_detail24reversible_container_tagE, i32 0, i32 0), i32 0, i32 1, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail21forward_container_tagE to i8*), i32 -4093 }
@_ZTIN5boost12graph_detail27random_access_container_tagE = linkonce_odr unnamed_addr constant { i8*, i8*, i32, i32, i8*, i32 } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv121__vmi_class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([52 x i8]* @_ZTSN5boost12graph_detail27random_access_container_tagE, i32 0, i32 0), i32 0, i32 1, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail24reversible_container_tagE to i8*), i32 -5117 }
@_ZTSN5boost12graph_detail27back_insertion_sequence_tagE = linkonce_odr constant [52 x i8] c"N5boost12graph_detail27back_insertion_sequence_tagE\00"
@_ZTSN5boost12graph_detail12sequence_tagE = linkonce_odr constant [37 x i8] c"N5boost12graph_detail12sequence_tagE\00"
@_ZTIN5boost12graph_detail12sequence_tagE = linkonce_odr unnamed_addr constant { i8*, i8*, i32, i32, i8*, i32 } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv121__vmi_class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([37 x i8]* @_ZTSN5boost12graph_detail12sequence_tagE, i32 0, i32 0), i32 0, i32 1, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail21forward_container_tagE to i8*), i32 -4093 }
@_ZTIN5boost12graph_detail27back_insertion_sequence_tagE = linkonce_odr unnamed_addr constant { i8*, i8*, i32, i32, i8*, i32 } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv121__vmi_class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([52 x i8]* @_ZTSN5boost12graph_detail27back_insertion_sequence_tagE, i32 0, i32 0), i32 0, i32 1, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail12sequence_tagE to i8*), i32 -5117 }
@_ZTIN5boost12graph_detail10vector_tagE = linkonce_odr unnamed_addr constant { i8*, i8*, i32, i32, i8*, i32, i8*, i32 } { i8* bitcast (i8** getelementptr inbounds (i8** @_ZTVN10__cxxabiv121__vmi_class_type_infoE, i32 2) to i8*), i8* getelementptr inbounds ([35 x i8]* @_ZTSN5boost12graph_detail10vector_tagE, i32 0, i32 0), i32 2, i32 2, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail27random_access_container_tagE to i8*), i32 -6141, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail27back_insertion_sequence_tagE to i8*), i32 -7165 }
@_ZTCN5boost12graph_detail10vector_tagE0_NS0_27random_access_container_tagE = linkonce_odr unnamed_addr constant [5 x i8*] [i8* null, i8* null, i8* null, i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail27random_access_container_tagE to i8*)]
@_ZTCN5boost12graph_detail10vector_tagE0_NS0_24reversible_container_tagE = linkonce_odr unnamed_addr constant [4 x i8*] [i8* null, i8* null, i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail24reversible_container_tagE to i8*)]
@_ZTCN5boost12graph_detail10vector_tagE0_NS0_21forward_container_tagE = linkonce_odr unnamed_addr constant [3 x i8*] [i8* null, i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail21forward_container_tagE to i8*)]
@_ZTCN5boost12graph_detail10vector_tagE4_NS0_27back_insertion_sequence_tagE = linkonce_odr unnamed_addr constant [8 x i8*] [i8* null, i8* inttoptr (i32 -4 to i8*), i8* inttoptr (i32 -4 to i8*), i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail27back_insertion_sequence_tagE to i8*), i8* null, i8* inttoptr (i32 4 to i8*), i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail27back_insertion_sequence_tagE to i8*)]
@_ZTCN5boost12graph_detail10vector_tagE4_NS0_12sequence_tagE = linkonce_odr unnamed_addr constant [7 x i8*] [i8* inttoptr (i32 -4 to i8*), i8* inttoptr (i32 -4 to i8*), i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail12sequence_tagE to i8*), i8* null, i8* inttoptr (i32 4 to i8*), i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail12sequence_tagE to i8*)]
@_ZTVN5boost12graph_detail27back_insertion_sequence_tagE = linkonce_odr unnamed_addr constant [5 x i8*] [i8* null, i8* null, i8* null, i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail27back_insertion_sequence_tagE to i8*)]
@_ZTTN5boost12graph_detail27back_insertion_sequence_tagE = linkonce_odr unnamed_addr constant [6 x i8*] [i8* bitcast (i8** getelementptr inbounds ([5 x i8*]* @_ZTVN5boost12graph_detail27back_insertion_sequence_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([5 x i8*]* @_ZTVN5boost12graph_detail27back_insertion_sequence_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([5 x i8*]* @_ZTVN5boost12graph_detail27back_insertion_sequence_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([4 x i8*]* @_ZTCN5boost12graph_detail27back_insertion_sequence_tagE0_NS0_12sequence_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([4 x i8*]* @_ZTCN5boost12graph_detail27back_insertion_sequence_tagE0_NS0_12sequence_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([3 x i8*]* @_ZTCN5boost12graph_detail27back_insertion_sequence_tagE0_NS0_21forward_container_tagE, i64 1, i64 0) to i8*)]
@_ZTCN5boost12graph_detail27back_insertion_sequence_tagE0_NS0_12sequence_tagE = linkonce_odr unnamed_addr constant [4 x i8*] [i8* null, i8* null, i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail12sequence_tagE to i8*)]
@_ZTCN5boost12graph_detail27back_insertion_sequence_tagE0_NS0_21forward_container_tagE = linkonce_odr unnamed_addr constant [3 x i8*] [i8* null, i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail21forward_container_tagE to i8*)]
@_ZTVN5boost12graph_detail12sequence_tagE = linkonce_odr unnamed_addr constant [4 x i8*] [i8* null, i8* null, i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail12sequence_tagE to i8*)]
@_ZTTN5boost12graph_detail12sequence_tagE = linkonce_odr unnamed_addr constant [3 x i8*] [i8* bitcast (i8** getelementptr inbounds ([4 x i8*]* @_ZTVN5boost12graph_detail12sequence_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([4 x i8*]* @_ZTVN5boost12graph_detail12sequence_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([3 x i8*]* @_ZTCN5boost12graph_detail12sequence_tagE0_NS0_21forward_container_tagE, i64 1, i64 0) to i8*)]
@_ZTCN5boost12graph_detail12sequence_tagE0_NS0_21forward_container_tagE = linkonce_odr unnamed_addr constant [3 x i8*] [i8* null, i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail21forward_container_tagE to i8*)]
@_ZTVN5boost12graph_detail27random_access_container_tagE = linkonce_odr unnamed_addr constant [5 x i8*] [i8* null, i8* null, i8* null, i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail27random_access_container_tagE to i8*)]
@_ZTTN5boost12graph_detail27random_access_container_tagE = linkonce_odr unnamed_addr constant [6 x i8*] [i8* bitcast (i8** getelementptr inbounds ([5 x i8*]* @_ZTVN5boost12graph_detail27random_access_container_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([5 x i8*]* @_ZTVN5boost12graph_detail27random_access_container_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([5 x i8*]* @_ZTVN5boost12graph_detail27random_access_container_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([4 x i8*]* @_ZTCN5boost12graph_detail27random_access_container_tagE0_NS0_24reversible_container_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([4 x i8*]* @_ZTCN5boost12graph_detail27random_access_container_tagE0_NS0_24reversible_container_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([3 x i8*]* @_ZTCN5boost12graph_detail27random_access_container_tagE0_NS0_21forward_container_tagE, i64 1, i64 0) to i8*)]
@_ZTCN5boost12graph_detail27random_access_container_tagE0_NS0_24reversible_container_tagE = linkonce_odr unnamed_addr constant [4 x i8*] [i8* null, i8* null, i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail24reversible_container_tagE to i8*)]
@_ZTCN5boost12graph_detail27random_access_container_tagE0_NS0_21forward_container_tagE = linkonce_odr unnamed_addr constant [3 x i8*] [i8* null, i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail21forward_container_tagE to i8*)]
@_ZTVN5boost12graph_detail24reversible_container_tagE = linkonce_odr unnamed_addr constant [4 x i8*] [i8* null, i8* null, i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail24reversible_container_tagE to i8*)]
@_ZTTN5boost12graph_detail24reversible_container_tagE = linkonce_odr unnamed_addr constant [3 x i8*] [i8* bitcast (i8** getelementptr inbounds ([4 x i8*]* @_ZTVN5boost12graph_detail24reversible_container_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([4 x i8*]* @_ZTVN5boost12graph_detail24reversible_container_tagE, i64 1, i64 0) to i8*), i8* bitcast (i8** getelementptr inbounds ([3 x i8*]* @_ZTCN5boost12graph_detail24reversible_container_tagE0_NS0_21forward_container_tagE, i64 1, i64 0) to i8*)]
@_ZTCN5boost12graph_detail24reversible_container_tagE0_NS0_21forward_container_tagE = linkonce_odr unnamed_addr constant [3 x i8*] [i8* null, i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail21forward_container_tagE to i8*)]
@_ZTVN5boost12graph_detail21forward_container_tagE = linkonce_odr unnamed_addr constant [3 x i8*] [i8* null, i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i32 }* @_ZTIN5boost12graph_detail21forward_container_tagE to i8*)]
@_ZTTN5boost12graph_detail21forward_container_tagE = linkonce_odr unnamed_addr constant [1 x i8*] [i8* bitcast (i8** getelementptr inbounds ([3 x i8*]* @_ZTVN5boost12graph_detail21forward_container_tagE, i64 1, i64 0) to i8*)]
@.str16 = private unnamed_addr constant [23 x i8] c"vector::_M_fill_insert\00", align 1
@llvm.global_ctors = appending global [1 x { i32, void ()* }] [{ i32, void ()* } { i32 65535, void ()* @_GLOBAL__I_a }]

define internal void @__cxx_global_var_init() section ".text.startup" {
entry:
  call void @_ZNSt8ios_base4InitC1Ev(%"class.std::ios_base::Init"* @_ZStL8__ioinit)
  %0 = call i32 @__cxa_atexit(void (i8*)* bitcast (void (%"class.std::ios_base::Init"*)* @_ZNSt8ios_base4InitD1Ev to void (i8*)*), i8* getelementptr inbounds (%"class.std::ios_base::Init"* @_ZStL8__ioinit, i32 0, i32 0), i8* @__dso_handle) nounwind
  ret void
}

declare void @_ZNSt8ios_base4InitC1Ev(%"class.std::ios_base::Init"*)

declare void @_ZNSt8ios_base4InitD1Ev(%"class.std::ios_base::Init"*)

declare i32 @__cxa_atexit(void (i8*)*, i8*, i8*) nounwind

define internal void @__cxx_global_var_init1() section ".text.startup" {
entry:
  call void @_ZN5boost6detail35make_property_map_from_arg_pack_genINS_5graph8keywords3tag9color_mapENS_18default_color_typeEEC1ES6_(%"class.boost::detail::make_property_map_from_arg_pack_gen"* @_ZN5boost6detailL28make_color_map_from_arg_packE, i32 0)
  ret void
}

define linkonce_odr void @_ZN5boost6detail35make_property_map_from_arg_pack_genINS_5graph8keywords3tag9color_mapENS_18default_color_typeEEC1ES6_(%"class.boost::detail::make_property_map_from_arg_pack_gen"* %this, i32 %default_value) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::make_property_map_from_arg_pack_gen"*, align 4
  %default_value.addr = alloca i32, align 4
  store %"class.boost::detail::make_property_map_from_arg_pack_gen"* %this, %"class.boost::detail::make_property_map_from_arg_pack_gen"** %this.addr, align 4
  store i32 %default_value, i32* %default_value.addr, align 4
  %this1 = load %"class.boost::detail::make_property_map_from_arg_pack_gen"** %this.addr
  %0 = load i32* %default_value.addr, align 4
  call void @_ZN5boost6detail35make_property_map_from_arg_pack_genINS_5graph8keywords3tag9color_mapENS_18default_color_typeEEC2ES6_(%"class.boost::detail::make_property_map_from_arg_pack_gen"* %this1, i32 %0)
  ret void
}

define i32 @main(i32, i8**) {
entry:
  %retval = alloca i32, align 4
  %.addr = alloca i32, align 4
  %.addr1 = alloca i8**, align 4
  %edges = alloca [9 x %"struct.std::pair"], align 4
  %ref.tmp = alloca i32, align 4
  %ref.tmp2 = alloca i32, align 4
  %ref.tmp3 = alloca i32, align 4
  %ref.tmp4 = alloca i32, align 4
  %ref.tmp6 = alloca i32, align 4
  %ref.tmp7 = alloca i32, align 4
  %ref.tmp9 = alloca i32, align 4
  %ref.tmp10 = alloca i32, align 4
  %ref.tmp12 = alloca i32, align 4
  %ref.tmp13 = alloca i32, align 4
  %ref.tmp15 = alloca i32, align 4
  %ref.tmp16 = alloca i32, align 4
  %ref.tmp18 = alloca i32, align 4
  %ref.tmp19 = alloca i32, align 4
  %ref.tmp21 = alloca i32, align 4
  %ref.tmp22 = alloca i32, align 4
  %ref.tmp24 = alloca i32, align 4
  %ref.tmp25 = alloca i32, align 4
  %G = alloca %"class.boost::adjacency_list", align 4
  %ref.tmp27 = alloca %"struct.boost::no_property", align 1
  %d = alloca %"class.std::vector.3", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %ref.tmp28 = alloca i32, align 4
  %ref.tmp29 = alloca %"class.std::allocator.5", align 1
  %f = alloca %"class.std::vector.3", align 4
  %ref.tmp35 = alloca i32, align 4
  %ref.tmp36 = alloca %"class.std::allocator.5", align 1
  %ref.tmp44 = alloca %"struct.boost::bgl_named_params", align 4
  %ref.tmp45 = alloca %"class.boost::dfs_visitor", align 4
  %agg.tmp = alloca %"struct.std::pair.8", align 4
  %ref.tmp46 = alloca %struct.edge_printer, align 4
  %agg.tmp47 = alloca %"class.std::basic_string", align 4
  %ref.tmp48 = alloca %"class.std::allocator.9", align 1
  %agg.tmp51 = alloca %"struct.boost::on_tree_edge", align 1
  %ref.tmp54 = alloca %struct.edge_printer.13, align 4
  %agg.tmp55 = alloca %"class.std::basic_string", align 4
  %ref.tmp56 = alloca %"class.std::allocator.9", align 1
  %agg.tmp59 = alloca %"struct.boost::on_back_edge", align 1
  %ref.tmp62 = alloca %struct.edge_printer.15, align 4
  %agg.tmp63 = alloca %"class.std::basic_string", align 4
  %ref.tmp64 = alloca %"class.std::allocator.9", align 1
  %agg.tmp67 = alloca %"struct.boost::on_forward_or_cross_edge", align 1
  %ref.tmp114 = alloca %"struct.boost::bgl_named_params.17", align 4
  %ref.tmp115 = alloca %"class.boost::bfs_visitor", align 4
  %agg.tmp116 = alloca %"struct.std::pair.18", align 4
  %agg.tmp117 = alloca %struct.edge_printer, align 4
  %agg.tmp118 = alloca %"class.std::basic_string", align 4
  %ref.tmp119 = alloca %"class.std::allocator.9", align 1
  %agg.tmp122 = alloca %"struct.boost::on_tree_edge", align 1
  %agg.tmp125 = alloca %struct.edge_printer.19, align 4
  %agg.tmp126 = alloca %"class.std::basic_string", align 4
  %ref.tmp127 = alloca %"class.std::allocator.9", align 1
  %agg.tmp130 = alloca %"struct.boost::on_non_tree_edge", align 1
  %cleanup.dest.slot = alloca i32
  store i32 0, i32* %retval
  store i32 %0, i32* %.addr, align 4
  store i8** %1, i8*** %.addr1, align 4
  %arrayinit.begin = getelementptr inbounds [9 x %"struct.std::pair"]* %edges, i32 0, i32 0
  store i32 0, i32* %ref.tmp, align 4
  store i32 2, i32* %ref.tmp2, align 4
  call void @_ZNSt4pairIiiEC1ERKiS2_(%"struct.std::pair"* %arrayinit.begin, i32* %ref.tmp, i32* %ref.tmp2)
  %arrayinit.element = getelementptr inbounds %"struct.std::pair"* %arrayinit.begin, i32 1
  store i32 1, i32* %ref.tmp3, align 4
  store i32 1, i32* %ref.tmp4, align 4
  call void @_ZNSt4pairIiiEC1ERKiS2_(%"struct.std::pair"* %arrayinit.element, i32* %ref.tmp3, i32* %ref.tmp4)
  %arrayinit.element5 = getelementptr inbounds %"struct.std::pair"* %arrayinit.element, i32 1
  store i32 1, i32* %ref.tmp6, align 4
  store i32 3, i32* %ref.tmp7, align 4
  call void @_ZNSt4pairIiiEC1ERKiS2_(%"struct.std::pair"* %arrayinit.element5, i32* %ref.tmp6, i32* %ref.tmp7)
  %arrayinit.element8 = getelementptr inbounds %"struct.std::pair"* %arrayinit.element5, i32 1
  store i32 2, i32* %ref.tmp9, align 4
  store i32 1, i32* %ref.tmp10, align 4
  call void @_ZNSt4pairIiiEC1ERKiS2_(%"struct.std::pair"* %arrayinit.element8, i32* %ref.tmp9, i32* %ref.tmp10)
  %arrayinit.element11 = getelementptr inbounds %"struct.std::pair"* %arrayinit.element8, i32 1
  store i32 2, i32* %ref.tmp12, align 4
  store i32 3, i32* %ref.tmp13, align 4
  call void @_ZNSt4pairIiiEC1ERKiS2_(%"struct.std::pair"* %arrayinit.element11, i32* %ref.tmp12, i32* %ref.tmp13)
  %arrayinit.element14 = getelementptr inbounds %"struct.std::pair"* %arrayinit.element11, i32 1
  store i32 3, i32* %ref.tmp15, align 4
  store i32 1, i32* %ref.tmp16, align 4
  call void @_ZNSt4pairIiiEC1ERKiS2_(%"struct.std::pair"* %arrayinit.element14, i32* %ref.tmp15, i32* %ref.tmp16)
  %arrayinit.element17 = getelementptr inbounds %"struct.std::pair"* %arrayinit.element14, i32 1
  store i32 3, i32* %ref.tmp18, align 4
  store i32 4, i32* %ref.tmp19, align 4
  call void @_ZNSt4pairIiiEC1ERKiS2_(%"struct.std::pair"* %arrayinit.element17, i32* %ref.tmp18, i32* %ref.tmp19)
  %arrayinit.element20 = getelementptr inbounds %"struct.std::pair"* %arrayinit.element17, i32 1
  store i32 4, i32* %ref.tmp21, align 4
  store i32 0, i32* %ref.tmp22, align 4
  call void @_ZNSt4pairIiiEC1ERKiS2_(%"struct.std::pair"* %arrayinit.element20, i32* %ref.tmp21, i32* %ref.tmp22)
  %arrayinit.element23 = getelementptr inbounds %"struct.std::pair"* %arrayinit.element20, i32 1
  store i32 4, i32* %ref.tmp24, align 4
  store i32 1, i32* %ref.tmp25, align 4
  call void @_ZNSt4pairIiiEC1ERKiS2_(%"struct.std::pair"* %arrayinit.element23, i32* %ref.tmp24, i32* %ref.tmp25)
  %arraydecay = getelementptr inbounds [9 x %"struct.std::pair"]* %edges, i32 0, i32 0
  %arraydecay26 = getelementptr inbounds [9 x %"struct.std::pair"]* %edges, i32 0, i32 0
  %add.ptr = getelementptr inbounds %"struct.std::pair"* %arraydecay26, i32 9
  call void @_ZN5boost14adjacency_listINS_4vecSES1_NS_9directedSENS_11no_propertyES3_S3_NS_5listSEEC1IPSt4pairIiiEEET_SA_jjRKS3_(%"class.boost::adjacency_list"* %G, %"struct.std::pair"* %arraydecay, %"struct.std::pair"* %add.ptr, i32 5, i32 0, %"struct.boost::no_property"* %ref.tmp27)
  %2 = bitcast %"class.boost::adjacency_list"* %G to %"struct.boost::adj_list_helper"*
  %call = invoke i32 @_ZN5boost12num_verticesINS_6detail12adj_list_genINS_14adjacency_listINS_4vecSES4_NS_9directedSENS_11no_propertyES6_S6_NS_5listSEEES4_S4_S5_S6_S6_S6_S7_E6configENS_21directed_graph_helperISA_EEEENT_18vertices_size_typeERKNS_15adj_list_helperISD_T0_EE(%"struct.boost::adj_list_helper"* %2)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  store i32 0, i32* %ref.tmp28, align 4
  call void @_ZNSaIjEC1Ev(%"class.std::allocator.5"* %ref.tmp29) nounwind
  invoke void @_ZNSt6vectorIjSaIjEEC1EjRKjRKS0_(%"class.std::vector.3"* %d, i32 %call, i32* %ref.tmp28, %"class.std::allocator.5"* %ref.tmp29)
          to label %invoke.cont31 unwind label %lpad30

invoke.cont31:                                    ; preds = %invoke.cont
  call void @_ZNSaIjED1Ev(%"class.std::allocator.5"* %ref.tmp29) nounwind
  %3 = bitcast %"class.boost::adjacency_list"* %G to %"struct.boost::adj_list_helper"*
  %call34 = invoke i32 @_ZN5boost12num_verticesINS_6detail12adj_list_genINS_14adjacency_listINS_4vecSES4_NS_9directedSENS_11no_propertyES6_S6_NS_5listSEEES4_S4_S5_S6_S6_S6_S7_E6configENS_21directed_graph_helperISA_EEEENT_18vertices_size_typeERKNS_15adj_list_helperISD_T0_EE(%"struct.boost::adj_list_helper"* %3)
          to label %invoke.cont33 unwind label %lpad32

invoke.cont33:                                    ; preds = %invoke.cont31
  store i32 0, i32* %ref.tmp35, align 4
  call void @_ZNSaIjEC1Ev(%"class.std::allocator.5"* %ref.tmp36) nounwind
  invoke void @_ZNSt6vectorIjSaIjEEC1EjRKjRKS0_(%"class.std::vector.3"* %f, i32 %call34, i32* %ref.tmp35, %"class.std::allocator.5"* %ref.tmp36)
          to label %invoke.cont38 unwind label %lpad37

invoke.cont38:                                    ; preds = %invoke.cont33
  call void @_ZNSaIjED1Ev(%"class.std::allocator.5"* %ref.tmp36) nounwind
  %call41 = invoke %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([31 x i8]* @.str, i32 0, i32 0))
          to label %invoke.cont40 unwind label %lpad39

invoke.cont40:                                    ; preds = %invoke.cont38
  %call43 = invoke %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"* %call41, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %invoke.cont42 unwind label %lpad39

invoke.cont42:                                    ; preds = %invoke.cont40
  call void @_ZNSaIcEC1Ev(%"class.std::allocator.9"* %ref.tmp48) nounwind
  invoke void @_ZNSsC1EPKcRKSaIcE(%"class.std::basic_string"* %agg.tmp47, i8* getelementptr inbounds ([5 x i8]* @.str2, i32 0, i32 0), %"class.std::allocator.9"* %ref.tmp48)
          to label %invoke.cont50 unwind label %lpad49

invoke.cont50:                                    ; preds = %invoke.cont42
  invoke void @_Z10print_edgeIN5boost12on_tree_edgeEE12edge_printerIT_ESsS3_(%struct.edge_printer* sret %ref.tmp46, %"class.std::basic_string"* %agg.tmp47)
          to label %invoke.cont53 unwind label %lpad52

invoke.cont53:                                    ; preds = %invoke.cont50
  call void @_ZNSaIcEC1Ev(%"class.std::allocator.9"* %ref.tmp56) nounwind
  invoke void @_ZNSsC1EPKcRKSaIcE(%"class.std::basic_string"* %agg.tmp55, i8* getelementptr inbounds ([5 x i8]* @.str3, i32 0, i32 0), %"class.std::allocator.9"* %ref.tmp56)
          to label %invoke.cont58 unwind label %lpad57

invoke.cont58:                                    ; preds = %invoke.cont53
  invoke void @_Z10print_edgeIN5boost12on_back_edgeEE12edge_printerIT_ESsS3_(%struct.edge_printer.13* sret %ref.tmp54, %"class.std::basic_string"* %agg.tmp55)
          to label %invoke.cont61 unwind label %lpad60

invoke.cont61:                                    ; preds = %invoke.cont58
  call void @_ZNSaIcEC1Ev(%"class.std::allocator.9"* %ref.tmp64) nounwind
  invoke void @_ZNSsC1EPKcRKSaIcE(%"class.std::basic_string"* %agg.tmp63, i8* getelementptr inbounds ([17 x i8]* @.str4, i32 0, i32 0), %"class.std::allocator.9"* %ref.tmp64)
          to label %invoke.cont66 unwind label %lpad65

invoke.cont66:                                    ; preds = %invoke.cont61
  invoke void @_Z10print_edgeIN5boost24on_forward_or_cross_edgeEE12edge_printerIT_ESsS3_(%struct.edge_printer.15* sret %ref.tmp62, %"class.std::basic_string"* %agg.tmp63)
          to label %invoke.cont69 unwind label %lpad68

invoke.cont69:                                    ; preds = %invoke.cont66
  invoke void @_ZN5boost9make_listI12edge_printerINS_12on_tree_edgeEES1_INS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEEEESt4pairIT_S8_IT0_T1_EERKS9_RKSA_RKSB_(%"struct.std::pair.8"* sret %agg.tmp, %struct.edge_printer* %ref.tmp46, %struct.edge_printer.13* %ref.tmp54, %struct.edge_printer.15* %ref.tmp62)
          to label %invoke.cont71 unwind label %lpad70

invoke.cont71:                                    ; preds = %invoke.cont69
  invoke void @_ZN5boost16make_dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEEENS_11dfs_visitorIT_EESC_(%"class.boost::dfs_visitor"* sret %ref.tmp45, %"struct.std::pair.8"* %agg.tmp)
          to label %invoke.cont73 unwind label %lpad72

invoke.cont73:                                    ; preds = %invoke.cont71
  invoke void @_ZN5boost7visitorINS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_IS3_INS_12on_back_edgeEES3_INS_24on_forward_or_cross_edgeEEEEEEEENS_16bgl_named_paramsIT_NS_15graph_visitor_tENS_11no_propertyEEERKSE_(%"struct.boost::bgl_named_params"* sret %ref.tmp44, %"class.boost::dfs_visitor"* %ref.tmp45)
          to label %invoke.cont75 unwind label %lpad74

invoke.cont75:                                    ; preds = %invoke.cont73
  invoke void @_ZN5boost18depth_first_searchINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES8_IS9_INS_12on_back_edgeEES9_INS_24on_forward_or_cross_edgeEEEEEENS_15graph_visitor_tES4_EENS_9result_ofIFNS_5graph6detail23depth_first_search_implIT_EESO_RKNS_6detail37convert_bgl_params_to_boost_parameterINS_16bgl_named_paramsIT0_T1_T2_EEE4typeEEE4typeERKSO_RKSW_(%"class.boost::adjacency_list"* %G, %"struct.boost::bgl_named_params"* %ref.tmp44)
          to label %invoke.cont77 unwind label %lpad76

invoke.cont77:                                    ; preds = %invoke.cont75
  invoke void @_ZN5boost16bgl_named_paramsINS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_IS3_INS_12on_back_edgeEES3_INS_24on_forward_or_cross_edgeEEEEEENS_15graph_visitor_tENS_11no_propertyEED1Ev(%"struct.boost::bgl_named_params"* %ref.tmp44)
          to label %invoke.cont78 unwind label %lpad74

invoke.cont78:                                    ; preds = %invoke.cont77
  invoke void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEED1Ev(%"class.boost::dfs_visitor"* %ref.tmp45)
          to label %invoke.cont80 unwind label %lpad72

invoke.cont80:                                    ; preds = %invoke.cont78
  invoke void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES_IS0_INS1_12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEEED1Ev(%"struct.std::pair.8"* %agg.tmp)
          to label %invoke.cont82 unwind label %lpad70

invoke.cont82:                                    ; preds = %invoke.cont80
  invoke void @_ZN12edge_printerIN5boost24on_forward_or_cross_edgeEED1Ev(%struct.edge_printer.15* %ref.tmp62)
          to label %invoke.cont85 unwind label %lpad68

invoke.cont85:                                    ; preds = %invoke.cont82
  invoke void @_ZNSsD1Ev(%"class.std::basic_string"* %agg.tmp63)
          to label %invoke.cont88 unwind label %lpad65

invoke.cont88:                                    ; preds = %invoke.cont85
  call void @_ZNSaIcED1Ev(%"class.std::allocator.9"* %ref.tmp64) nounwind
  invoke void @_ZN12edge_printerIN5boost12on_back_edgeEED1Ev(%struct.edge_printer.13* %ref.tmp54)
          to label %invoke.cont92 unwind label %lpad60

invoke.cont92:                                    ; preds = %invoke.cont88
  invoke void @_ZNSsD1Ev(%"class.std::basic_string"* %agg.tmp55)
          to label %invoke.cont95 unwind label %lpad57

invoke.cont95:                                    ; preds = %invoke.cont92
  call void @_ZNSaIcED1Ev(%"class.std::allocator.9"* %ref.tmp56) nounwind
  invoke void @_ZN12edge_printerIN5boost12on_tree_edgeEED1Ev(%struct.edge_printer* %ref.tmp46)
          to label %invoke.cont99 unwind label %lpad52

invoke.cont99:                                    ; preds = %invoke.cont95
  invoke void @_ZNSsD1Ev(%"class.std::basic_string"* %agg.tmp47)
          to label %invoke.cont102 unwind label %lpad49

invoke.cont102:                                   ; preds = %invoke.cont99
  call void @_ZNSaIcED1Ev(%"class.std::allocator.9"* %ref.tmp48) nounwind
  %call107 = invoke %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"* @_ZSt4cout, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %invoke.cont106 unwind label %lpad39

invoke.cont106:                                   ; preds = %invoke.cont102
  %call109 = invoke %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* %call107, i8* getelementptr inbounds ([31 x i8]* @.str5, i32 0, i32 0))
          to label %invoke.cont108 unwind label %lpad39

invoke.cont108:                                   ; preds = %invoke.cont106
  %call111 = invoke %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"* %call109, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %invoke.cont110 unwind label %lpad39

invoke.cont110:                                   ; preds = %invoke.cont108
  %4 = bitcast %"class.boost::adjacency_list"* %G to %"class.boost::vec_adj_list_impl"*
  %call113 = invoke i32 @_ZN5boost6vertexINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_6detail12adj_list_genIS6_S2_S2_S3_S4_S4_S4_S5_E6configENS_21directed_graph_helperISA_EEEENT0_17vertex_descriptorENSD_18vertices_size_typeERKNS_17vec_adj_list_implIT_SD_T1_EE(i32 0, %"class.boost::vec_adj_list_impl"* %4)
          to label %invoke.cont112 unwind label %lpad39

invoke.cont112:                                   ; preds = %invoke.cont110
  call void @_ZNSaIcEC1Ev(%"class.std::allocator.9"* %ref.tmp119) nounwind
  invoke void @_ZNSsC1EPKcRKSaIcE(%"class.std::basic_string"* %agg.tmp118, i8* getelementptr inbounds ([5 x i8]* @.str2, i32 0, i32 0), %"class.std::allocator.9"* %ref.tmp119)
          to label %invoke.cont121 unwind label %lpad120

invoke.cont121:                                   ; preds = %invoke.cont112
  invoke void @_Z10print_edgeIN5boost12on_tree_edgeEE12edge_printerIT_ESsS3_(%struct.edge_printer* sret %agg.tmp117, %"class.std::basic_string"* %agg.tmp118)
          to label %invoke.cont124 unwind label %lpad123

invoke.cont124:                                   ; preds = %invoke.cont121
  call void @_ZNSaIcEC1Ev(%"class.std::allocator.9"* %ref.tmp127) nounwind
  invoke void @_ZNSsC1EPKcRKSaIcE(%"class.std::basic_string"* %agg.tmp126, i8* getelementptr inbounds ([6 x i8]* @.str6, i32 0, i32 0), %"class.std::allocator.9"* %ref.tmp127)
          to label %invoke.cont129 unwind label %lpad128

invoke.cont129:                                   ; preds = %invoke.cont124
  invoke void @_Z10print_edgeIN5boost16on_non_tree_edgeEE12edge_printerIT_ESsS3_(%struct.edge_printer.19* sret %agg.tmp125, %"class.std::basic_string"* %agg.tmp126)
          to label %invoke.cont132 unwind label %lpad131

invoke.cont132:                                   ; preds = %invoke.cont129
  invoke void @_ZSt9make_pairI12edge_printerIN5boost12on_tree_edgeEES0_INS1_16on_non_tree_edgeEEESt4pairIT_T0_ES7_S8_(%"struct.std::pair.18"* sret %agg.tmp116, %struct.edge_printer* %agg.tmp117, %struct.edge_printer.19* %agg.tmp125)
          to label %invoke.cont134 unwind label %lpad133

invoke.cont134:                                   ; preds = %invoke.cont132
  invoke void @_ZN5boost16make_bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEEENS_11bfs_visitorIT_EES9_(%"class.boost::bfs_visitor"* sret %ref.tmp115, %"struct.std::pair.18"* %agg.tmp116)
          to label %invoke.cont136 unwind label %lpad135

invoke.cont136:                                   ; preds = %invoke.cont134
  invoke void @_ZN5boost7visitorINS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES3_INS_16on_non_tree_edgeEEEEEEENS_16bgl_named_paramsIT_NS_15graph_visitor_tENS_11no_propertyEEERKSB_(%"struct.boost::bgl_named_params.17"* sret %ref.tmp114, %"class.boost::bfs_visitor"* %ref.tmp115)
          to label %invoke.cont138 unwind label %lpad137

invoke.cont138:                                   ; preds = %invoke.cont136
  invoke void @_ZN5boost20breadth_first_searchINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES9_INS_16on_non_tree_edgeEEEEENS_15graph_visitor_tES4_EEvRKT_NS_12graph_traitsISH_E17vertex_descriptorERKNS_16bgl_named_paramsIT0_T1_T2_EE(%"class.boost::adjacency_list"* %G, i32 %call113, %"struct.boost::bgl_named_params.17"* %ref.tmp114)
          to label %invoke.cont140 unwind label %lpad139

invoke.cont140:                                   ; preds = %invoke.cont138
  invoke void @_ZN5boost16bgl_named_paramsINS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES3_INS_16on_non_tree_edgeEEEEENS_15graph_visitor_tENS_11no_propertyEED1Ev(%"struct.boost::bgl_named_params.17"* %ref.tmp114)
          to label %invoke.cont141 unwind label %lpad137

invoke.cont141:                                   ; preds = %invoke.cont140
  invoke void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEED1Ev(%"class.boost::bfs_visitor"* %ref.tmp115)
          to label %invoke.cont144 unwind label %lpad135

invoke.cont144:                                   ; preds = %invoke.cont141
  invoke void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES0_INS1_16on_non_tree_edgeEEED1Ev(%"struct.std::pair.18"* %agg.tmp116)
          to label %invoke.cont147 unwind label %lpad133

invoke.cont147:                                   ; preds = %invoke.cont144
  invoke void @_ZN12edge_printerIN5boost16on_non_tree_edgeEED1Ev(%struct.edge_printer.19* %agg.tmp125)
          to label %invoke.cont150 unwind label %lpad131

invoke.cont150:                                   ; preds = %invoke.cont147
  invoke void @_ZNSsD1Ev(%"class.std::basic_string"* %agg.tmp126)
          to label %invoke.cont153 unwind label %lpad128

invoke.cont153:                                   ; preds = %invoke.cont150
  call void @_ZNSaIcED1Ev(%"class.std::allocator.9"* %ref.tmp127) nounwind
  invoke void @_ZN12edge_printerIN5boost12on_tree_edgeEED1Ev(%struct.edge_printer* %agg.tmp117)
          to label %invoke.cont157 unwind label %lpad123

invoke.cont157:                                   ; preds = %invoke.cont153
  invoke void @_ZNSsD1Ev(%"class.std::basic_string"* %agg.tmp118)
          to label %invoke.cont160 unwind label %lpad120

invoke.cont160:                                   ; preds = %invoke.cont157
  call void @_ZNSaIcED1Ev(%"class.std::allocator.9"* %ref.tmp119) nounwind
  store i32 0, i32* %retval
  store i32 1, i32* %cleanup.dest.slot
  invoke void @_ZNSt6vectorIjSaIjEED1Ev(%"class.std::vector.3"* %f)
          to label %invoke.cont164 unwind label %lpad32

lpad:                                             ; preds = %invoke.cont164, %entry
  %5 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %6 = extractvalue { i8*, i32 } %5, 0
  store i8* %6, i8** %exn.slot
  %7 = extractvalue { i8*, i32 } %5, 1
  store i32 %7, i32* %ehselector.slot
  br label %ehcleanup170

lpad30:                                           ; preds = %invoke.cont
  %8 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %9 = extractvalue { i8*, i32 } %8, 0
  store i8* %9, i8** %exn.slot
  %10 = extractvalue { i8*, i32 } %8, 1
  store i32 %10, i32* %ehselector.slot
  call void @_ZNSaIjED1Ev(%"class.std::allocator.5"* %ref.tmp29) nounwind
  br label %ehcleanup170

lpad32:                                           ; preds = %invoke.cont160, %invoke.cont31
  %11 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %12 = extractvalue { i8*, i32 } %11, 0
  store i8* %12, i8** %exn.slot
  %13 = extractvalue { i8*, i32 } %11, 1
  store i32 %13, i32* %ehselector.slot
  br label %ehcleanup168

lpad37:                                           ; preds = %invoke.cont33
  %14 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %15 = extractvalue { i8*, i32 } %14, 0
  store i8* %15, i8** %exn.slot
  %16 = extractvalue { i8*, i32 } %14, 1
  store i32 %16, i32* %ehselector.slot
  call void @_ZNSaIjED1Ev(%"class.std::allocator.5"* %ref.tmp36) nounwind
  br label %ehcleanup168

lpad39:                                           ; preds = %invoke.cont110, %invoke.cont108, %invoke.cont106, %invoke.cont102, %invoke.cont40, %invoke.cont38
  %17 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %18 = extractvalue { i8*, i32 } %17, 0
  store i8* %18, i8** %exn.slot
  %19 = extractvalue { i8*, i32 } %17, 1
  store i32 %19, i32* %ehselector.slot
  br label %ehcleanup165

lpad49:                                           ; preds = %invoke.cont99, %invoke.cont42
  %20 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %21 = extractvalue { i8*, i32 } %20, 0
  store i8* %21, i8** %exn.slot
  %22 = extractvalue { i8*, i32 } %20, 1
  store i32 %22, i32* %ehselector.slot
  br label %ehcleanup105

lpad52:                                           ; preds = %invoke.cont95, %invoke.cont50
  %23 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %24 = extractvalue { i8*, i32 } %23, 0
  store i8* %24, i8** %exn.slot
  %25 = extractvalue { i8*, i32 } %23, 1
  store i32 %25, i32* %ehselector.slot
  br label %ehcleanup103

lpad57:                                           ; preds = %invoke.cont92, %invoke.cont53
  %26 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %27 = extractvalue { i8*, i32 } %26, 0
  store i8* %27, i8** %exn.slot
  %28 = extractvalue { i8*, i32 } %26, 1
  store i32 %28, i32* %ehselector.slot
  br label %ehcleanup98

lpad60:                                           ; preds = %invoke.cont88, %invoke.cont58
  %29 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %30 = extractvalue { i8*, i32 } %29, 0
  store i8* %30, i8** %exn.slot
  %31 = extractvalue { i8*, i32 } %29, 1
  store i32 %31, i32* %ehselector.slot
  br label %ehcleanup96

lpad65:                                           ; preds = %invoke.cont85, %invoke.cont61
  %32 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %33 = extractvalue { i8*, i32 } %32, 0
  store i8* %33, i8** %exn.slot
  %34 = extractvalue { i8*, i32 } %32, 1
  store i32 %34, i32* %ehselector.slot
  br label %ehcleanup91

lpad68:                                           ; preds = %invoke.cont82, %invoke.cont66
  %35 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %36 = extractvalue { i8*, i32 } %35, 0
  store i8* %36, i8** %exn.slot
  %37 = extractvalue { i8*, i32 } %35, 1
  store i32 %37, i32* %ehselector.slot
  br label %ehcleanup89

lpad70:                                           ; preds = %invoke.cont80, %invoke.cont69
  %38 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %39 = extractvalue { i8*, i32 } %38, 0
  store i8* %39, i8** %exn.slot
  %40 = extractvalue { i8*, i32 } %38, 1
  store i32 %40, i32* %ehselector.slot
  br label %ehcleanup86

lpad72:                                           ; preds = %invoke.cont78, %invoke.cont71
  %41 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %42 = extractvalue { i8*, i32 } %41, 0
  store i8* %42, i8** %exn.slot
  %43 = extractvalue { i8*, i32 } %41, 1
  store i32 %43, i32* %ehselector.slot
  br label %ehcleanup83

lpad74:                                           ; preds = %invoke.cont77, %invoke.cont73
  %44 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %45 = extractvalue { i8*, i32 } %44, 0
  store i8* %45, i8** %exn.slot
  %46 = extractvalue { i8*, i32 } %44, 1
  store i32 %46, i32* %ehselector.slot
  br label %ehcleanup

lpad76:                                           ; preds = %invoke.cont75
  %47 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %48 = extractvalue { i8*, i32 } %47, 0
  store i8* %48, i8** %exn.slot
  %49 = extractvalue { i8*, i32 } %47, 1
  store i32 %49, i32* %ehselector.slot
  invoke void @_ZN5boost16bgl_named_paramsINS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_IS3_INS_12on_back_edgeEES3_INS_24on_forward_or_cross_edgeEEEEEENS_15graph_visitor_tENS_11no_propertyEED1Ev(%"struct.boost::bgl_named_params"* %ref.tmp44)
          to label %invoke.cont79 unwind label %terminate.lpad

invoke.cont79:                                    ; preds = %lpad76
  br label %ehcleanup

ehcleanup:                                        ; preds = %invoke.cont79, %lpad74
  invoke void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEED1Ev(%"class.boost::dfs_visitor"* %ref.tmp45)
          to label %invoke.cont81 unwind label %terminate.lpad

invoke.cont81:                                    ; preds = %ehcleanup
  br label %ehcleanup83

ehcleanup83:                                      ; preds = %invoke.cont81, %lpad72
  invoke void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES_IS0_INS1_12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEEED1Ev(%"struct.std::pair.8"* %agg.tmp)
          to label %invoke.cont84 unwind label %terminate.lpad

invoke.cont84:                                    ; preds = %ehcleanup83
  br label %ehcleanup86

ehcleanup86:                                      ; preds = %invoke.cont84, %lpad70
  invoke void @_ZN12edge_printerIN5boost24on_forward_or_cross_edgeEED1Ev(%struct.edge_printer.15* %ref.tmp62)
          to label %invoke.cont87 unwind label %terminate.lpad

invoke.cont87:                                    ; preds = %ehcleanup86
  br label %ehcleanup89

ehcleanup89:                                      ; preds = %invoke.cont87, %lpad68
  invoke void @_ZNSsD1Ev(%"class.std::basic_string"* %agg.tmp63)
          to label %invoke.cont90 unwind label %terminate.lpad

invoke.cont90:                                    ; preds = %ehcleanup89
  br label %ehcleanup91

ehcleanup91:                                      ; preds = %invoke.cont90, %lpad65
  call void @_ZNSaIcED1Ev(%"class.std::allocator.9"* %ref.tmp64) nounwind
  invoke void @_ZN12edge_printerIN5boost12on_back_edgeEED1Ev(%struct.edge_printer.13* %ref.tmp54)
          to label %invoke.cont94 unwind label %terminate.lpad

invoke.cont94:                                    ; preds = %ehcleanup91
  br label %ehcleanup96

ehcleanup96:                                      ; preds = %invoke.cont94, %lpad60
  invoke void @_ZNSsD1Ev(%"class.std::basic_string"* %agg.tmp55)
          to label %invoke.cont97 unwind label %terminate.lpad

invoke.cont97:                                    ; preds = %ehcleanup96
  br label %ehcleanup98

ehcleanup98:                                      ; preds = %invoke.cont97, %lpad57
  call void @_ZNSaIcED1Ev(%"class.std::allocator.9"* %ref.tmp56) nounwind
  invoke void @_ZN12edge_printerIN5boost12on_tree_edgeEED1Ev(%struct.edge_printer* %ref.tmp46)
          to label %invoke.cont101 unwind label %terminate.lpad

invoke.cont101:                                   ; preds = %ehcleanup98
  br label %ehcleanup103

ehcleanup103:                                     ; preds = %invoke.cont101, %lpad52
  invoke void @_ZNSsD1Ev(%"class.std::basic_string"* %agg.tmp47)
          to label %invoke.cont104 unwind label %terminate.lpad

invoke.cont104:                                   ; preds = %ehcleanup103
  br label %ehcleanup105

ehcleanup105:                                     ; preds = %invoke.cont104, %lpad49
  call void @_ZNSaIcED1Ev(%"class.std::allocator.9"* %ref.tmp48) nounwind
  br label %ehcleanup165

lpad120:                                          ; preds = %invoke.cont157, %invoke.cont112
  %50 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %51 = extractvalue { i8*, i32 } %50, 0
  store i8* %51, i8** %exn.slot
  %52 = extractvalue { i8*, i32 } %50, 1
  store i32 %52, i32* %ehselector.slot
  br label %ehcleanup163

lpad123:                                          ; preds = %invoke.cont153, %invoke.cont121
  %53 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %54 = extractvalue { i8*, i32 } %53, 0
  store i8* %54, i8** %exn.slot
  %55 = extractvalue { i8*, i32 } %53, 1
  store i32 %55, i32* %ehselector.slot
  br label %ehcleanup161

lpad128:                                          ; preds = %invoke.cont150, %invoke.cont124
  %56 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %57 = extractvalue { i8*, i32 } %56, 0
  store i8* %57, i8** %exn.slot
  %58 = extractvalue { i8*, i32 } %56, 1
  store i32 %58, i32* %ehselector.slot
  br label %ehcleanup156

lpad131:                                          ; preds = %invoke.cont147, %invoke.cont129
  %59 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %60 = extractvalue { i8*, i32 } %59, 0
  store i8* %60, i8** %exn.slot
  %61 = extractvalue { i8*, i32 } %59, 1
  store i32 %61, i32* %ehselector.slot
  br label %ehcleanup154

lpad133:                                          ; preds = %invoke.cont144, %invoke.cont132
  %62 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %63 = extractvalue { i8*, i32 } %62, 0
  store i8* %63, i8** %exn.slot
  %64 = extractvalue { i8*, i32 } %62, 1
  store i32 %64, i32* %ehselector.slot
  br label %ehcleanup151

lpad135:                                          ; preds = %invoke.cont141, %invoke.cont134
  %65 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %66 = extractvalue { i8*, i32 } %65, 0
  store i8* %66, i8** %exn.slot
  %67 = extractvalue { i8*, i32 } %65, 1
  store i32 %67, i32* %ehselector.slot
  br label %ehcleanup148

lpad137:                                          ; preds = %invoke.cont140, %invoke.cont136
  %68 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %69 = extractvalue { i8*, i32 } %68, 0
  store i8* %69, i8** %exn.slot
  %70 = extractvalue { i8*, i32 } %68, 1
  store i32 %70, i32* %ehselector.slot
  br label %ehcleanup145

lpad139:                                          ; preds = %invoke.cont138
  %71 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %72 = extractvalue { i8*, i32 } %71, 0
  store i8* %72, i8** %exn.slot
  %73 = extractvalue { i8*, i32 } %71, 1
  store i32 %73, i32* %ehselector.slot
  invoke void @_ZN5boost16bgl_named_paramsINS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES3_INS_16on_non_tree_edgeEEEEENS_15graph_visitor_tENS_11no_propertyEED1Ev(%"struct.boost::bgl_named_params.17"* %ref.tmp114)
          to label %invoke.cont143 unwind label %terminate.lpad

invoke.cont143:                                   ; preds = %lpad139
  br label %ehcleanup145

ehcleanup145:                                     ; preds = %invoke.cont143, %lpad137
  invoke void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEED1Ev(%"class.boost::bfs_visitor"* %ref.tmp115)
          to label %invoke.cont146 unwind label %terminate.lpad

invoke.cont146:                                   ; preds = %ehcleanup145
  br label %ehcleanup148

ehcleanup148:                                     ; preds = %invoke.cont146, %lpad135
  invoke void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES0_INS1_16on_non_tree_edgeEEED1Ev(%"struct.std::pair.18"* %agg.tmp116)
          to label %invoke.cont149 unwind label %terminate.lpad

invoke.cont149:                                   ; preds = %ehcleanup148
  br label %ehcleanup151

ehcleanup151:                                     ; preds = %invoke.cont149, %lpad133
  invoke void @_ZN12edge_printerIN5boost16on_non_tree_edgeEED1Ev(%struct.edge_printer.19* %agg.tmp125)
          to label %invoke.cont152 unwind label %terminate.lpad

invoke.cont152:                                   ; preds = %ehcleanup151
  br label %ehcleanup154

ehcleanup154:                                     ; preds = %invoke.cont152, %lpad131
  invoke void @_ZNSsD1Ev(%"class.std::basic_string"* %agg.tmp126)
          to label %invoke.cont155 unwind label %terminate.lpad

invoke.cont155:                                   ; preds = %ehcleanup154
  br label %ehcleanup156

ehcleanup156:                                     ; preds = %invoke.cont155, %lpad128
  call void @_ZNSaIcED1Ev(%"class.std::allocator.9"* %ref.tmp127) nounwind
  invoke void @_ZN12edge_printerIN5boost12on_tree_edgeEED1Ev(%struct.edge_printer* %agg.tmp117)
          to label %invoke.cont159 unwind label %terminate.lpad

invoke.cont159:                                   ; preds = %ehcleanup156
  br label %ehcleanup161

ehcleanup161:                                     ; preds = %invoke.cont159, %lpad123
  invoke void @_ZNSsD1Ev(%"class.std::basic_string"* %agg.tmp118)
          to label %invoke.cont162 unwind label %terminate.lpad

invoke.cont162:                                   ; preds = %ehcleanup161
  br label %ehcleanup163

ehcleanup163:                                     ; preds = %invoke.cont162, %lpad120
  call void @_ZNSaIcED1Ev(%"class.std::allocator.9"* %ref.tmp119) nounwind
  br label %ehcleanup165

invoke.cont164:                                   ; preds = %invoke.cont160
  invoke void @_ZNSt6vectorIjSaIjEED1Ev(%"class.std::vector.3"* %d)
          to label %invoke.cont167 unwind label %lpad

ehcleanup165:                                     ; preds = %ehcleanup163, %ehcleanup105, %lpad39
  invoke void @_ZNSt6vectorIjSaIjEED1Ev(%"class.std::vector.3"* %f)
          to label %invoke.cont166 unwind label %terminate.lpad

invoke.cont166:                                   ; preds = %ehcleanup165
  br label %ehcleanup168

invoke.cont167:                                   ; preds = %invoke.cont164
  call void @_ZN5boost14adjacency_listINS_4vecSES1_NS_9directedSENS_11no_propertyES3_S3_NS_5listSEED1Ev(%"class.boost::adjacency_list"* %G)
  %74 = load i32* %retval
  ret i32 %74

ehcleanup168:                                     ; preds = %invoke.cont166, %lpad37, %lpad32
  invoke void @_ZNSt6vectorIjSaIjEED1Ev(%"class.std::vector.3"* %d)
          to label %invoke.cont169 unwind label %terminate.lpad

invoke.cont169:                                   ; preds = %ehcleanup168
  br label %ehcleanup170

ehcleanup170:                                     ; preds = %invoke.cont169, %lpad30, %lpad
  invoke void @_ZN5boost14adjacency_listINS_4vecSES1_NS_9directedSENS_11no_propertyES3_S3_NS_5listSEED1Ev(%"class.boost::adjacency_list"* %G)
          to label %invoke.cont171 unwind label %terminate.lpad

invoke.cont171:                                   ; preds = %ehcleanup170
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont171
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val172 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val172

terminate.lpad:                                   ; preds = %ehcleanup170, %ehcleanup168, %ehcleanup165, %ehcleanup161, %ehcleanup156, %ehcleanup154, %ehcleanup151, %ehcleanup148, %ehcleanup145, %lpad139, %ehcleanup103, %ehcleanup98, %ehcleanup96, %ehcleanup91, %ehcleanup89, %ehcleanup86, %ehcleanup83, %ehcleanup, %lpad76
  %75 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZNSt4pairIiiEC1ERKiS2_(%"struct.std::pair"* %this, i32* %__a, i32* %__b) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::pair"*, align 4
  %__a.addr = alloca i32*, align 4
  %__b.addr = alloca i32*, align 4
  store %"struct.std::pair"* %this, %"struct.std::pair"** %this.addr, align 4
  store i32* %__a, i32** %__a.addr, align 4
  store i32* %__b, i32** %__b.addr, align 4
  %this1 = load %"struct.std::pair"** %this.addr
  %0 = load i32** %__a.addr
  %1 = load i32** %__b.addr
  call void @_ZNSt4pairIiiEC2ERKiS2_(%"struct.std::pair"* %this1, i32* %0, i32* %1)
  ret void
}

define linkonce_odr void @_ZN5boost14adjacency_listINS_4vecSES1_NS_9directedSENS_11no_propertyES3_S3_NS_5listSEEC1IPSt4pairIiiEEET_SA_jjRKS3_(%"class.boost::adjacency_list"* %this, %"struct.std::pair"* %first, %"struct.std::pair"* %last, i32 %n, i32, %"struct.boost::no_property"* %p) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::adjacency_list"*, align 4
  %first.addr = alloca %"struct.std::pair"*, align 4
  %last.addr = alloca %"struct.std::pair"*, align 4
  %n.addr = alloca i32, align 4
  %.addr = alloca i32, align 4
  %p.addr = alloca %"struct.boost::no_property"*, align 4
  store %"class.boost::adjacency_list"* %this, %"class.boost::adjacency_list"** %this.addr, align 4
  store %"struct.std::pair"* %first, %"struct.std::pair"** %first.addr, align 4
  store %"struct.std::pair"* %last, %"struct.std::pair"** %last.addr, align 4
  store i32 %n, i32* %n.addr, align 4
  store i32 %0, i32* %.addr, align 4
  store %"struct.boost::no_property"* %p, %"struct.boost::no_property"** %p.addr, align 4
  %this1 = load %"class.boost::adjacency_list"** %this.addr
  %1 = load %"struct.std::pair"** %first.addr, align 4
  %2 = load %"struct.std::pair"** %last.addr, align 4
  %3 = load i32* %n.addr, align 4
  %4 = load i32* %.addr, align 4
  %5 = load %"struct.boost::no_property"** %p.addr
  call void @_ZN5boost14adjacency_listINS_4vecSES1_NS_9directedSENS_11no_propertyES3_S3_NS_5listSEEC2IPSt4pairIiiEEET_SA_jjRKS3_(%"class.boost::adjacency_list"* %this1, %"struct.std::pair"* %1, %"struct.std::pair"* %2, i32 %3, i32 %4, %"struct.boost::no_property"* %5)
  ret void
}

define linkonce_odr void @_ZNSt6vectorIjSaIjEEC1EjRKjRKS0_(%"class.std::vector.3"* %this, i32 %__n, i32* %__value, %"class.std::allocator.5"* %__a) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector.3"*, align 4
  %__n.addr = alloca i32, align 4
  %__value.addr = alloca i32*, align 4
  %__a.addr = alloca %"class.std::allocator.5"*, align 4
  store %"class.std::vector.3"* %this, %"class.std::vector.3"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i32* %__value, i32** %__value.addr, align 4
  store %"class.std::allocator.5"* %__a, %"class.std::allocator.5"** %__a.addr, align 4
  %this1 = load %"class.std::vector.3"** %this.addr
  %0 = load i32* %__n.addr, align 4
  %1 = load i32** %__value.addr
  %2 = load %"class.std::allocator.5"** %__a.addr
  call void @_ZNSt6vectorIjSaIjEEC2EjRKjRKS0_(%"class.std::vector.3"* %this1, i32 %0, i32* %1, %"class.std::allocator.5"* %2)
  ret void
}

define linkonce_odr i32 @_ZN5boost12num_verticesINS_6detail12adj_list_genINS_14adjacency_listINS_4vecSES4_NS_9directedSENS_11no_propertyES6_S6_NS_5listSEEES4_S4_S5_S6_S6_S6_S7_E6configENS_21directed_graph_helperISA_EEEENT_18vertices_size_typeERKNS_15adj_list_helperISD_T0_EE(%"struct.boost::adj_list_helper"* %g_) inlinehint {
entry:
  %g_.addr = alloca %"struct.boost::adj_list_helper"*, align 4
  %g = alloca %"class.boost::adjacency_list"*, align 4
  %tmp = alloca %"class.boost::integer_range", align 4
  store %"struct.boost::adj_list_helper"* %g_, %"struct.boost::adj_list_helper"** %g_.addr, align 4
  %0 = load %"struct.boost::adj_list_helper"** %g_.addr, align 4
  %1 = bitcast %"struct.boost::adj_list_helper"* %0 to %"class.boost::adjacency_list"*
  store %"class.boost::adjacency_list"* %1, %"class.boost::adjacency_list"** %g, align 4
  %2 = load %"class.boost::adjacency_list"** %g, align 4
  %3 = bitcast %"class.boost::adjacency_list"* %2 to %"class.boost::vec_adj_list_impl"*
  call void @_ZNK5boost17vec_adj_list_implINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_6detail12adj_list_genIS6_S2_S2_S3_S4_S4_S4_S5_E6configENS_21directed_graph_helperISA_EEE10vertex_setEv(%"class.boost::integer_range"* sret %tmp, %"class.boost::vec_adj_list_impl"* %3)
  %4 = bitcast %"class.boost::integer_range"* %tmp to %"class.boost::iterator_range"*
  %call = call i32 @_ZNK5boost14iterator_rangeINS_12range_detail16integer_iteratorIjEEE4sizeEv(%"class.boost::iterator_range"* %4)
  ret i32 %call
}

declare i32 @__gxx_personality_v0(...)

define linkonce_odr void @_ZNSaIjEC1Ev(%"class.std::allocator.5"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.5"*, align 4
  store %"class.std::allocator.5"* %this, %"class.std::allocator.5"** %this.addr, align 4
  %this1 = load %"class.std::allocator.5"** %this.addr
  call void @_ZNSaIjEC2Ev(%"class.std::allocator.5"* %this1) nounwind
  ret void
}

define linkonce_odr void @_ZNSaIjED1Ev(%"class.std::allocator.5"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.5"*, align 4
  store %"class.std::allocator.5"* %this, %"class.std::allocator.5"** %this.addr, align 4
  %this1 = load %"class.std::allocator.5"** %this.addr
  call void @_ZNSaIjED2Ev(%"class.std::allocator.5"* %this1) nounwind
  ret void
}

declare %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"*, i8*)

declare %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"*, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)*)

declare %"class.std::basic_ostream"* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(%"class.std::basic_ostream"*)

define linkonce_odr void @_ZN5boost18depth_first_searchINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES8_IS9_INS_12on_back_edgeEES9_INS_24on_forward_or_cross_edgeEEEEEENS_15graph_visitor_tES4_EENS_9result_ofIFNS_5graph6detail23depth_first_search_implIT_EESO_RKNS_6detail37convert_bgl_params_to_boost_parameterINS_16bgl_named_paramsIT0_T1_T2_EEE4typeEEE4typeERKSO_RKSW_(%"class.boost::adjacency_list"* %param0, %"struct.boost::bgl_named_params"* %old_style_params) {
entry:
  %param0.addr = alloca %"class.boost::adjacency_list"*, align 4
  %old_style_params.addr = alloca %"struct.boost::bgl_named_params"*, align 4
  %arg_pack = alloca %"struct.boost::parameter::aux::arg_list", align 4
  store %"class.boost::adjacency_list"* %param0, %"class.boost::adjacency_list"** %param0.addr, align 4
  store %"struct.boost::bgl_named_params"* %old_style_params, %"struct.boost::bgl_named_params"** %old_style_params.addr, align 4
  %0 = load %"struct.boost::bgl_named_params"** %old_style_params.addr, align 4
  call void @_ZN5boost6detail37convert_bgl_params_to_boost_parameterINS_16bgl_named_paramsINS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES4_IS5_INS_12on_back_edgeEES5_INS_24on_forward_or_cross_edgeEEEEEENS_15graph_visitor_tENS_11no_propertyEEEE4convERKSH_(%"struct.boost::parameter::aux::arg_list"* sret %arg_pack, %"struct.boost::bgl_named_params"* %0)
  %1 = load %"class.boost::adjacency_list"** %param0.addr, align 4
  call void @_ZN5boost5graph36depth_first_search_with_named_paramsINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEENS_9parameter3aux8arg_listINS9_15tagged_argumentINS0_8keywords3tag7visitorEKNS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEESG_ISH_INS_12on_back_edgeEESH_INS_24on_forward_or_cross_edgeEEEEEEEENS9_14empty_arg_listEEEEENS_9result_ofIFNS0_6detail23depth_first_search_implIT_EESY_RKT0_EE4typeERKSY_S12_(%"class.boost::adjacency_list"* %1, %"struct.boost::parameter::aux::arg_list"* %arg_pack)
  ret void
}

define linkonce_odr void @_ZN5boost7visitorINS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_IS3_INS_12on_back_edgeEES3_INS_24on_forward_or_cross_edgeEEEEEEEENS_16bgl_named_paramsIT_NS_15graph_visitor_tENS_11no_propertyEEERKSE_(%"struct.boost::bgl_named_params"* noalias sret %agg.result, %"class.boost::dfs_visitor"* %p) {
entry:
  %p.addr = alloca %"class.boost::dfs_visitor"*, align 4
  %agg.tmp = alloca %"class.boost::dfs_visitor", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.boost::dfs_visitor"* %p, %"class.boost::dfs_visitor"** %p.addr, align 4
  %0 = load %"class.boost::dfs_visitor"** %p.addr, align 4
  call void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEEC1ERKSB_(%"class.boost::dfs_visitor"* %agg.tmp, %"class.boost::dfs_visitor"* %0)
  invoke void @_ZN5boost16bgl_named_paramsINS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_IS3_INS_12on_back_edgeEES3_INS_24on_forward_or_cross_edgeEEEEEENS_15graph_visitor_tENS_11no_propertyEEC1ESC_(%"struct.boost::bgl_named_params"* %agg.result, %"class.boost::dfs_visitor"* %agg.tmp)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  call void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEED1Ev(%"class.boost::dfs_visitor"* %agg.tmp)
  ret void

lpad:                                             ; preds = %entry
  %1 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %2 = extractvalue { i8*, i32 } %1, 0
  store i8* %2, i8** %exn.slot
  %3 = extractvalue { i8*, i32 } %1, 1
  store i32 %3, i32* %ehselector.slot
  invoke void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEED1Ev(%"class.boost::dfs_visitor"* %agg.tmp)
          to label %invoke.cont1 unwind label %terminate.lpad

invoke.cont1:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont1
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val2

terminate.lpad:                                   ; preds = %lpad
  %4 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost16make_dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEEENS_11dfs_visitorIT_EESC_(%"class.boost::dfs_visitor"* noalias sret %agg.result, %"struct.std::pair.8"* %vis) {
entry:
  %agg.tmp = alloca %"struct.std::pair.8", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  call void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES_IS0_INS1_12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEEEC1ERKS9_(%"struct.std::pair.8"* %agg.tmp, %"struct.std::pair.8"* %vis)
  invoke void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEEC1ESA_(%"class.boost::dfs_visitor"* %agg.result, %"struct.std::pair.8"* %agg.tmp)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  call void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES_IS0_INS1_12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEEED1Ev(%"struct.std::pair.8"* %agg.tmp)
  ret void

lpad:                                             ; preds = %entry
  %0 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %1 = extractvalue { i8*, i32 } %0, 0
  store i8* %1, i8** %exn.slot
  %2 = extractvalue { i8*, i32 } %0, 1
  store i32 %2, i32* %ehselector.slot
  invoke void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES_IS0_INS1_12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEEED1Ev(%"struct.std::pair.8"* %agg.tmp)
          to label %invoke.cont1 unwind label %terminate.lpad

invoke.cont1:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont1
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val2

terminate.lpad:                                   ; preds = %lpad
  %3 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost9make_listI12edge_printerINS_12on_tree_edgeEES1_INS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEEEESt4pairIT_S8_IT0_T1_EERKS9_RKSA_RKSB_(%"struct.std::pair.8"* noalias sret %agg.result, %struct.edge_printer* %t1, %struct.edge_printer.13* %t2, %struct.edge_printer.15* %t3) {
entry:
  %t1.addr = alloca %struct.edge_printer*, align 4
  %t2.addr = alloca %struct.edge_printer.13*, align 4
  %t3.addr = alloca %struct.edge_printer.15*, align 4
  %agg.tmp = alloca %struct.edge_printer, align 4
  %agg.tmp1 = alloca %"struct.std::pair.12", align 4
  %agg.tmp2 = alloca %struct.edge_printer.13, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %agg.tmp3 = alloca %struct.edge_printer.15, align 4
  store %struct.edge_printer* %t1, %struct.edge_printer** %t1.addr, align 4
  store %struct.edge_printer.13* %t2, %struct.edge_printer.13** %t2.addr, align 4
  store %struct.edge_printer.15* %t3, %struct.edge_printer.15** %t3.addr, align 4
  %0 = load %struct.edge_printer** %t1.addr, align 4
  call void @_ZN12edge_printerIN5boost12on_tree_edgeEEC1ERKS2_(%struct.edge_printer* %agg.tmp, %struct.edge_printer* %0)
  %1 = load %struct.edge_printer.13** %t2.addr, align 4
  invoke void @_ZN12edge_printerIN5boost12on_back_edgeEEC1ERKS2_(%struct.edge_printer.13* %agg.tmp2, %struct.edge_printer.13* %1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %2 = load %struct.edge_printer.15** %t3.addr, align 4
  invoke void @_ZN12edge_printerIN5boost24on_forward_or_cross_edgeEEC1ERKS2_(%struct.edge_printer.15* %agg.tmp3, %struct.edge_printer.15* %2)
          to label %invoke.cont5 unwind label %lpad4

invoke.cont5:                                     ; preds = %invoke.cont
  invoke void @_ZSt9make_pairI12edge_printerIN5boost12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEESt4pairIT_T0_ES7_S8_(%"struct.std::pair.12"* sret %agg.tmp1, %struct.edge_printer.13* %agg.tmp2, %struct.edge_printer.15* %agg.tmp3)
          to label %invoke.cont7 unwind label %lpad6

invoke.cont7:                                     ; preds = %invoke.cont5
  invoke void @_ZSt9make_pairI12edge_printerIN5boost12on_tree_edgeEESt4pairIS0_INS1_12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEEES4_IT_T0_ESA_SB_(%"struct.std::pair.8"* sret %agg.result, %struct.edge_printer* %agg.tmp, %"struct.std::pair.12"* %agg.tmp1)
          to label %invoke.cont9 unwind label %lpad8

invoke.cont9:                                     ; preds = %invoke.cont7
  invoke void @_ZNSt4pairI12edge_printerIN5boost12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEED1Ev(%"struct.std::pair.12"* %agg.tmp1)
          to label %invoke.cont10 unwind label %lpad6

invoke.cont10:                                    ; preds = %invoke.cont9
  invoke void @_ZN12edge_printerIN5boost24on_forward_or_cross_edgeEED1Ev(%struct.edge_printer.15* %agg.tmp3)
          to label %invoke.cont12 unwind label %lpad4

invoke.cont12:                                    ; preds = %invoke.cont10
  invoke void @_ZN12edge_printerIN5boost12on_back_edgeEED1Ev(%struct.edge_printer.13* %agg.tmp2)
          to label %invoke.cont14 unwind label %lpad

invoke.cont14:                                    ; preds = %invoke.cont12
  call void @_ZN12edge_printerIN5boost12on_tree_edgeEED1Ev(%struct.edge_printer* %agg.tmp)
  ret void

lpad:                                             ; preds = %invoke.cont12, %entry
  %3 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %4 = extractvalue { i8*, i32 } %3, 0
  store i8* %4, i8** %exn.slot
  %5 = extractvalue { i8*, i32 } %3, 1
  store i32 %5, i32* %ehselector.slot
  br label %ehcleanup17

lpad4:                                            ; preds = %invoke.cont10, %invoke.cont
  %6 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %7 = extractvalue { i8*, i32 } %6, 0
  store i8* %7, i8** %exn.slot
  %8 = extractvalue { i8*, i32 } %6, 1
  store i32 %8, i32* %ehselector.slot
  br label %ehcleanup15

lpad6:                                            ; preds = %invoke.cont9, %invoke.cont5
  %9 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %10 = extractvalue { i8*, i32 } %9, 0
  store i8* %10, i8** %exn.slot
  %11 = extractvalue { i8*, i32 } %9, 1
  store i32 %11, i32* %ehselector.slot
  br label %ehcleanup

lpad8:                                            ; preds = %invoke.cont7
  %12 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %13 = extractvalue { i8*, i32 } %12, 0
  store i8* %13, i8** %exn.slot
  %14 = extractvalue { i8*, i32 } %12, 1
  store i32 %14, i32* %ehselector.slot
  invoke void @_ZNSt4pairI12edge_printerIN5boost12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEED1Ev(%"struct.std::pair.12"* %agg.tmp1)
          to label %invoke.cont11 unwind label %terminate.lpad

invoke.cont11:                                    ; preds = %lpad8
  br label %ehcleanup

ehcleanup:                                        ; preds = %invoke.cont11, %lpad6
  invoke void @_ZN12edge_printerIN5boost24on_forward_or_cross_edgeEED1Ev(%struct.edge_printer.15* %agg.tmp3)
          to label %invoke.cont13 unwind label %terminate.lpad

invoke.cont13:                                    ; preds = %ehcleanup
  br label %ehcleanup15

ehcleanup15:                                      ; preds = %invoke.cont13, %lpad4
  invoke void @_ZN12edge_printerIN5boost12on_back_edgeEED1Ev(%struct.edge_printer.13* %agg.tmp2)
          to label %invoke.cont16 unwind label %terminate.lpad

invoke.cont16:                                    ; preds = %ehcleanup15
  br label %ehcleanup17

ehcleanup17:                                      ; preds = %invoke.cont16, %lpad
  invoke void @_ZN12edge_printerIN5boost12on_tree_edgeEED1Ev(%struct.edge_printer* %agg.tmp)
          to label %invoke.cont18 unwind label %terminate.lpad

invoke.cont18:                                    ; preds = %ehcleanup17
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont18
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val19 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val19

terminate.lpad:                                   ; preds = %ehcleanup17, %ehcleanup15, %ehcleanup, %lpad8
  %15 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_Z10print_edgeIN5boost12on_tree_edgeEE12edge_printerIT_ESsS3_(%struct.edge_printer* noalias sret %agg.result, %"class.std::basic_string"* %type) {
entry:
  %0 = alloca %"struct.boost::on_tree_edge", align 1
  %agg.tmp = alloca %"class.std::basic_string", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  call void @_ZNSsC1ERKSs(%"class.std::basic_string"* %agg.tmp, %"class.std::basic_string"* %type)
  invoke void @_ZN12edge_printerIN5boost12on_tree_edgeEEC1ESs(%struct.edge_printer* %agg.result, %"class.std::basic_string"* %agg.tmp)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  call void @_ZNSsD1Ev(%"class.std::basic_string"* %agg.tmp)
  ret void

lpad:                                             ; preds = %entry
  %1 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %2 = extractvalue { i8*, i32 } %1, 0
  store i8* %2, i8** %exn.slot
  %3 = extractvalue { i8*, i32 } %1, 1
  store i32 %3, i32* %ehselector.slot
  invoke void @_ZNSsD1Ev(%"class.std::basic_string"* %agg.tmp)
          to label %invoke.cont1 unwind label %terminate.lpad

invoke.cont1:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont1
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val2

terminate.lpad:                                   ; preds = %lpad
  %4 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

declare void @_ZNSsC1EPKcRKSaIcE(%"class.std::basic_string"*, i8*, %"class.std::allocator.9"*)

declare void @_ZNSaIcEC1Ev(%"class.std::allocator.9"*) nounwind

define linkonce_odr void @_Z10print_edgeIN5boost12on_back_edgeEE12edge_printerIT_ESsS3_(%struct.edge_printer.13* noalias sret %agg.result, %"class.std::basic_string"* %type) {
entry:
  %0 = alloca %"struct.boost::on_back_edge", align 1
  %agg.tmp = alloca %"class.std::basic_string", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  call void @_ZNSsC1ERKSs(%"class.std::basic_string"* %agg.tmp, %"class.std::basic_string"* %type)
  invoke void @_ZN12edge_printerIN5boost12on_back_edgeEEC1ESs(%struct.edge_printer.13* %agg.result, %"class.std::basic_string"* %agg.tmp)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  call void @_ZNSsD1Ev(%"class.std::basic_string"* %agg.tmp)
  ret void

lpad:                                             ; preds = %entry
  %1 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %2 = extractvalue { i8*, i32 } %1, 0
  store i8* %2, i8** %exn.slot
  %3 = extractvalue { i8*, i32 } %1, 1
  store i32 %3, i32* %ehselector.slot
  invoke void @_ZNSsD1Ev(%"class.std::basic_string"* %agg.tmp)
          to label %invoke.cont1 unwind label %terminate.lpad

invoke.cont1:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont1
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val2

terminate.lpad:                                   ; preds = %lpad
  %4 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_Z10print_edgeIN5boost24on_forward_or_cross_edgeEE12edge_printerIT_ESsS3_(%struct.edge_printer.15* noalias sret %agg.result, %"class.std::basic_string"* %type) {
entry:
  %0 = alloca %"struct.boost::on_forward_or_cross_edge", align 1
  %agg.tmp = alloca %"class.std::basic_string", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  call void @_ZNSsC1ERKSs(%"class.std::basic_string"* %agg.tmp, %"class.std::basic_string"* %type)
  invoke void @_ZN12edge_printerIN5boost24on_forward_or_cross_edgeEEC1ESs(%struct.edge_printer.15* %agg.result, %"class.std::basic_string"* %agg.tmp)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  call void @_ZNSsD1Ev(%"class.std::basic_string"* %agg.tmp)
  ret void

lpad:                                             ; preds = %entry
  %1 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %2 = extractvalue { i8*, i32 } %1, 0
  store i8* %2, i8** %exn.slot
  %3 = extractvalue { i8*, i32 } %1, 1
  store i32 %3, i32* %ehselector.slot
  invoke void @_ZNSsD1Ev(%"class.std::basic_string"* %agg.tmp)
          to label %invoke.cont1 unwind label %terminate.lpad

invoke.cont1:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont1
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val2

terminate.lpad:                                   ; preds = %lpad
  %4 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost16bgl_named_paramsINS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_IS3_INS_12on_back_edgeEES3_INS_24on_forward_or_cross_edgeEEEEEENS_15graph_visitor_tENS_11no_propertyEED1Ev(%"struct.boost::bgl_named_params"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::bgl_named_params"*, align 4
  store %"struct.boost::bgl_named_params"* %this, %"struct.boost::bgl_named_params"** %this.addr, align 4
  %this1 = load %"struct.boost::bgl_named_params"** %this.addr
  call void @_ZN5boost16bgl_named_paramsINS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_IS3_INS_12on_back_edgeEES3_INS_24on_forward_or_cross_edgeEEEEEENS_15graph_visitor_tENS_11no_propertyEED2Ev(%"struct.boost::bgl_named_params"* %this1)
  ret void
}

declare void @_ZSt9terminatev()

define linkonce_odr void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEED1Ev(%"class.boost::dfs_visitor"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::dfs_visitor"*, align 4
  store %"class.boost::dfs_visitor"* %this, %"class.boost::dfs_visitor"** %this.addr, align 4
  %this1 = load %"class.boost::dfs_visitor"** %this.addr
  call void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEED2Ev(%"class.boost::dfs_visitor"* %this1)
  ret void
}

define linkonce_odr void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES_IS0_INS1_12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEEED1Ev(%"struct.std::pair.8"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.8"*, align 4
  store %"struct.std::pair.8"* %this, %"struct.std::pair.8"** %this.addr, align 4
  %this1 = load %"struct.std::pair.8"** %this.addr
  call void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES_IS0_INS1_12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEEED2Ev(%"struct.std::pair.8"* %this1)
  ret void
}

define linkonce_odr void @_ZN12edge_printerIN5boost24on_forward_or_cross_edgeEED1Ev(%struct.edge_printer.15* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %struct.edge_printer.15*, align 4
  store %struct.edge_printer.15* %this, %struct.edge_printer.15** %this.addr, align 4
  %this1 = load %struct.edge_printer.15** %this.addr
  call void @_ZN12edge_printerIN5boost24on_forward_or_cross_edgeEED2Ev(%struct.edge_printer.15* %this1)
  ret void
}

declare void @_ZNSsD1Ev(%"class.std::basic_string"*)

declare void @_ZNSaIcED1Ev(%"class.std::allocator.9"*) nounwind

define linkonce_odr void @_ZN12edge_printerIN5boost12on_back_edgeEED1Ev(%struct.edge_printer.13* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %struct.edge_printer.13*, align 4
  store %struct.edge_printer.13* %this, %struct.edge_printer.13** %this.addr, align 4
  %this1 = load %struct.edge_printer.13** %this.addr
  call void @_ZN12edge_printerIN5boost12on_back_edgeEED2Ev(%struct.edge_printer.13* %this1)
  ret void
}

define linkonce_odr void @_ZN12edge_printerIN5boost12on_tree_edgeEED1Ev(%struct.edge_printer* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %struct.edge_printer*, align 4
  store %struct.edge_printer* %this, %struct.edge_printer** %this.addr, align 4
  %this1 = load %struct.edge_printer** %this.addr
  call void @_ZN12edge_printerIN5boost12on_tree_edgeEED2Ev(%struct.edge_printer* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost20breadth_first_searchINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES9_INS_16on_non_tree_edgeEEEEENS_15graph_visitor_tES4_EEvRKT_NS_12graph_traitsISH_E17vertex_descriptorERKNS_16bgl_named_paramsIT0_T1_T2_EE(%"class.boost::adjacency_list"* %g, i32 %s, %"struct.boost::bgl_named_params.17"* %params) {
entry:
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %s.addr = alloca i32, align 4
  %params.addr = alloca %"struct.boost::bgl_named_params.17"*, align 4
  %ng = alloca %"class.boost::adjacency_list"*, align 4
  %agg.tmp = alloca %"struct.boost::param_not_found", align 1
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store i32 %s, i32* %s.addr, align 4
  store %"struct.boost::bgl_named_params.17"* %params, %"struct.boost::bgl_named_params.17"** %params.addr, align 4
  %0 = load %"class.boost::adjacency_list"** %g.addr, align 4
  store %"class.boost::adjacency_list"* %0, %"class.boost::adjacency_list"** %ng, align 4
  %1 = load %"class.boost::adjacency_list"** %ng, align 4
  %2 = load i32* %s.addr, align 4
  %3 = load %"struct.boost::bgl_named_params.17"** %params.addr, align 4
  %4 = load %"struct.boost::bgl_named_params.17"** %params.addr, align 4
  %call = call %"struct.boost::param_not_found"* @_ZN5boost9get_paramINS_14vertex_color_tENS_16bgl_named_paramsINS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES5_INS_16on_non_tree_edgeEEEEENS_15graph_visitor_tENS_11no_propertyEEEEERKNS_22lookup_named_param_defIT_T0_NS_15param_not_foundEE4typeERKSH_SG_(%"struct.boost::bgl_named_params.17"* %4, i32 0)
  call void @_ZN5boost6detail12bfs_dispatchINS_15param_not_foundEE5applyINS_14adjacency_listINS_4vecSES6_NS_9directedSENS_11no_propertyES8_S8_NS_5listSEEENS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEESD_INS_16on_non_tree_edgeEEEEENS_15graph_visitor_tES8_EEvRT_NS_12graph_traitsISL_E17vertex_descriptorERKNS_16bgl_named_paramsIT0_T1_T2_EES2_(%"class.boost::adjacency_list"* %1, i32 %2, %"struct.boost::bgl_named_params.17"* %3)
  ret void
}

define linkonce_odr i32 @_ZN5boost6vertexINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_6detail12adj_list_genIS6_S2_S2_S3_S4_S4_S4_S5_E6configENS_21directed_graph_helperISA_EEEENT0_17vertex_descriptorENSD_18vertices_size_typeERKNS_17vec_adj_list_implIT_SD_T1_EE(i32 %n, %"class.boost::vec_adj_list_impl"*) nounwind inlinehint {
entry:
  %n.addr = alloca i32, align 4
  %.addr = alloca %"class.boost::vec_adj_list_impl"*, align 4
  store i32 %n, i32* %n.addr, align 4
  store %"class.boost::vec_adj_list_impl"* %0, %"class.boost::vec_adj_list_impl"** %.addr, align 4
  %1 = load i32* %n.addr, align 4
  ret i32 %1
}

define linkonce_odr void @_ZN5boost7visitorINS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES3_INS_16on_non_tree_edgeEEEEEEENS_16bgl_named_paramsIT_NS_15graph_visitor_tENS_11no_propertyEEERKSB_(%"struct.boost::bgl_named_params.17"* noalias sret %agg.result, %"class.boost::bfs_visitor"* %p) {
entry:
  %p.addr = alloca %"class.boost::bfs_visitor"*, align 4
  %agg.tmp = alloca %"class.boost::bfs_visitor", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.boost::bfs_visitor"* %p, %"class.boost::bfs_visitor"** %p.addr, align 4
  %0 = load %"class.boost::bfs_visitor"** %p.addr, align 4
  call void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEEC1ERKS8_(%"class.boost::bfs_visitor"* %agg.tmp, %"class.boost::bfs_visitor"* %0)
  invoke void @_ZN5boost16bgl_named_paramsINS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES3_INS_16on_non_tree_edgeEEEEENS_15graph_visitor_tENS_11no_propertyEEC1ES9_(%"struct.boost::bgl_named_params.17"* %agg.result, %"class.boost::bfs_visitor"* %agg.tmp)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  call void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEED1Ev(%"class.boost::bfs_visitor"* %agg.tmp)
  ret void

lpad:                                             ; preds = %entry
  %1 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %2 = extractvalue { i8*, i32 } %1, 0
  store i8* %2, i8** %exn.slot
  %3 = extractvalue { i8*, i32 } %1, 1
  store i32 %3, i32* %ehselector.slot
  invoke void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEED1Ev(%"class.boost::bfs_visitor"* %agg.tmp)
          to label %invoke.cont1 unwind label %terminate.lpad

invoke.cont1:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont1
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val2

terminate.lpad:                                   ; preds = %lpad
  %4 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost16make_bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEEENS_11bfs_visitorIT_EES9_(%"class.boost::bfs_visitor"* noalias sret %agg.result, %"struct.std::pair.18"* %vis) {
entry:
  %agg.tmp = alloca %"struct.std::pair.18", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  call void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES0_INS1_16on_non_tree_edgeEEEC1ERKS6_(%"struct.std::pair.18"* %agg.tmp, %"struct.std::pair.18"* %vis)
  invoke void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEEC1ES7_(%"class.boost::bfs_visitor"* %agg.result, %"struct.std::pair.18"* %agg.tmp)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  call void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES0_INS1_16on_non_tree_edgeEEED1Ev(%"struct.std::pair.18"* %agg.tmp)
  ret void

lpad:                                             ; preds = %entry
  %0 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %1 = extractvalue { i8*, i32 } %0, 0
  store i8* %1, i8** %exn.slot
  %2 = extractvalue { i8*, i32 } %0, 1
  store i32 %2, i32* %ehselector.slot
  invoke void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES0_INS1_16on_non_tree_edgeEEED1Ev(%"struct.std::pair.18"* %agg.tmp)
          to label %invoke.cont1 unwind label %terminate.lpad

invoke.cont1:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont1
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val2

terminate.lpad:                                   ; preds = %lpad
  %3 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZSt9make_pairI12edge_printerIN5boost12on_tree_edgeEES0_INS1_16on_non_tree_edgeEEESt4pairIT_T0_ES7_S8_(%"struct.std::pair.18"* noalias sret %agg.result, %struct.edge_printer* %__x, %struct.edge_printer.19* %__y) inlinehint {
entry:
  call void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES0_INS1_16on_non_tree_edgeEEEC1ERKS3_RKS5_(%"struct.std::pair.18"* %agg.result, %struct.edge_printer* %__x, %struct.edge_printer.19* %__y)
  ret void
}

define linkonce_odr void @_Z10print_edgeIN5boost16on_non_tree_edgeEE12edge_printerIT_ESsS3_(%struct.edge_printer.19* noalias sret %agg.result, %"class.std::basic_string"* %type) {
entry:
  %0 = alloca %"struct.boost::on_non_tree_edge", align 1
  %agg.tmp = alloca %"class.std::basic_string", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  call void @_ZNSsC1ERKSs(%"class.std::basic_string"* %agg.tmp, %"class.std::basic_string"* %type)
  invoke void @_ZN12edge_printerIN5boost16on_non_tree_edgeEEC1ESs(%struct.edge_printer.19* %agg.result, %"class.std::basic_string"* %agg.tmp)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  call void @_ZNSsD1Ev(%"class.std::basic_string"* %agg.tmp)
  ret void

lpad:                                             ; preds = %entry
  %1 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %2 = extractvalue { i8*, i32 } %1, 0
  store i8* %2, i8** %exn.slot
  %3 = extractvalue { i8*, i32 } %1, 1
  store i32 %3, i32* %ehselector.slot
  invoke void @_ZNSsD1Ev(%"class.std::basic_string"* %agg.tmp)
          to label %invoke.cont1 unwind label %terminate.lpad

invoke.cont1:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont1
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val2

terminate.lpad:                                   ; preds = %lpad
  %4 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost16bgl_named_paramsINS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES3_INS_16on_non_tree_edgeEEEEENS_15graph_visitor_tENS_11no_propertyEED1Ev(%"struct.boost::bgl_named_params.17"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::bgl_named_params.17"*, align 4
  store %"struct.boost::bgl_named_params.17"* %this, %"struct.boost::bgl_named_params.17"** %this.addr, align 4
  %this1 = load %"struct.boost::bgl_named_params.17"** %this.addr
  call void @_ZN5boost16bgl_named_paramsINS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES3_INS_16on_non_tree_edgeEEEEENS_15graph_visitor_tENS_11no_propertyEED2Ev(%"struct.boost::bgl_named_params.17"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEED1Ev(%"class.boost::bfs_visitor"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::bfs_visitor"*, align 4
  store %"class.boost::bfs_visitor"* %this, %"class.boost::bfs_visitor"** %this.addr, align 4
  %this1 = load %"class.boost::bfs_visitor"** %this.addr
  call void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEED2Ev(%"class.boost::bfs_visitor"* %this1)
  ret void
}

define linkonce_odr void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES0_INS1_16on_non_tree_edgeEEED1Ev(%"struct.std::pair.18"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.18"*, align 4
  store %"struct.std::pair.18"* %this, %"struct.std::pair.18"** %this.addr, align 4
  %this1 = load %"struct.std::pair.18"** %this.addr
  call void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES0_INS1_16on_non_tree_edgeEEED2Ev(%"struct.std::pair.18"* %this1)
  ret void
}

define linkonce_odr void @_ZN12edge_printerIN5boost16on_non_tree_edgeEED1Ev(%struct.edge_printer.19* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %struct.edge_printer.19*, align 4
  store %struct.edge_printer.19* %this, %struct.edge_printer.19** %this.addr, align 4
  %this1 = load %struct.edge_printer.19** %this.addr
  call void @_ZN12edge_printerIN5boost16on_non_tree_edgeEED2Ev(%struct.edge_printer.19* %this1)
  ret void
}

define linkonce_odr void @_ZNSt6vectorIjSaIjEED1Ev(%"class.std::vector.3"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector.3"*, align 4
  store %"class.std::vector.3"* %this, %"class.std::vector.3"** %this.addr, align 4
  %this1 = load %"class.std::vector.3"** %this.addr
  call void @_ZNSt6vectorIjSaIjEED2Ev(%"class.std::vector.3"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost14adjacency_listINS_4vecSES1_NS_9directedSENS_11no_propertyES3_S3_NS_5listSEED1Ev(%"class.boost::adjacency_list"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::adjacency_list"*, align 4
  store %"class.boost::adjacency_list"* %this, %"class.boost::adjacency_list"** %this.addr, align 4
  %this1 = load %"class.boost::adjacency_list"** %this.addr
  call void @_ZN5boost14adjacency_listINS_4vecSES1_NS_9directedSENS_11no_propertyES3_S3_NS_5listSEED2Ev(%"class.boost::adjacency_list"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost6detail12bfs_dispatchINS_15param_not_foundEE5applyINS_14adjacency_listINS_4vecSES6_NS_9directedSENS_11no_propertyES8_S8_NS_5listSEEENS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEESD_INS_16on_non_tree_edgeEEEEENS_15graph_visitor_tES8_EEvRT_NS_12graph_traitsISL_E17vertex_descriptorERKNS_16bgl_named_paramsIT0_T1_T2_EES2_(%"class.boost::adjacency_list"* %g, i32 %s, %"struct.boost::bgl_named_params.17"* %params) align 2 {
entry:
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %s.addr = alloca i32, align 4
  %params.addr = alloca %"struct.boost::bgl_named_params.17"*, align 4
  %0 = alloca %"struct.boost::param_not_found", align 1
  %null_vis = alloca %"struct.boost::null_visitor", align 1
  %agg.tmp = alloca %"struct.boost::two_bit_color_map", align 4
  %ref.tmp = alloca %"struct.boost::vec_adj_list_vertex_id_map", align 1
  %agg.tmp2 = alloca %"class.boost::bfs_visitor", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %ref.tmp4 = alloca %"class.boost::bfs_visitor.27", align 1
  %agg.tmp5 = alloca %"struct.boost::null_visitor", align 1
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store i32 %s, i32* %s.addr, align 4
  store %"struct.boost::bgl_named_params.17"* %params, %"struct.boost::bgl_named_params.17"** %params.addr, align 4
  %1 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %2 = load i32* %s.addr, align 4
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = bitcast %"class.boost::adjacency_list"* %3 to %"struct.boost::adj_list_helper"*
  %call = call i32 @_ZN5boost12num_verticesINS_6detail12adj_list_genINS_14adjacency_listINS_4vecSES4_NS_9directedSENS_11no_propertyES6_S6_NS_5listSEEES4_S4_S5_S6_S6_S6_S7_E6configENS_21directed_graph_helperISA_EEEENT_18vertices_size_typeERKNS_15adj_list_helperISD_T0_EE(%"struct.boost::adj_list_helper"* %4)
  %5 = load %"struct.boost::bgl_named_params.17"** %params.addr, align 4
  %call1 = call %"struct.boost::param_not_found"* @_ZN5boost9get_paramINS_14vertex_index_tENS_16bgl_named_paramsINS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES5_INS_16on_non_tree_edgeEEEEENS_15graph_visitor_tENS_11no_propertyEEEEERKNS_22lookup_named_param_defIT_T0_NS_15param_not_foundEE4typeERKSH_SG_(%"struct.boost::bgl_named_params.17"* %5, i32 0)
  %6 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost17choose_const_pmapINS_15param_not_foundENS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEENS_14vertex_index_tEEENS_6detail18choose_impl_resultIN4mpl_5bool_ILb1EEET0_T_T1_E4typeERKSF_RKSE_SG_(%"struct.boost::vec_adj_list_vertex_id_map"* sret %ref.tmp, %"struct.boost::param_not_found"* %call1, %"class.boost::adjacency_list"* %6, i32 0)
  call void @_ZN5boost22make_two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEENS_17two_bit_color_mapIT_EEjRKS5_(%"struct.boost::two_bit_color_map"* sret %agg.tmp, i32 %call, %"struct.boost::vec_adj_list_vertex_id_map"* %ref.tmp)
  %7 = load %"struct.boost::bgl_named_params.17"** %params.addr, align 4
  %call3 = invoke %"class.boost::bfs_visitor"* @_ZN5boost9get_paramINS_15graph_visitor_tENS_16bgl_named_paramsINS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES5_INS_16on_non_tree_edgeEEEEES1_NS_11no_propertyEEEEERKNS_22lookup_named_param_defIT_T0_NS_15param_not_foundEE4typeERKSG_SF_(%"struct.boost::bgl_named_params.17"* %7, i32 0)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  invoke void @_ZN5boost16make_bfs_visitorINS_12null_visitorEEENS_11bfs_visitorIT_EES3_(%"class.boost::bfs_visitor.27"* sret %ref.tmp4)
          to label %invoke.cont6 unwind label %lpad

invoke.cont6:                                     ; preds = %invoke.cont
  %call8 = invoke %"class.boost::bfs_visitor"* @_ZN5boost12choose_paramINS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES3_INS_16on_non_tree_edgeEEEEENS1_INS_12null_visitorEEEEERKT_SE_RKT0_(%"class.boost::bfs_visitor"* %call3, %"class.boost::bfs_visitor.27"* %ref.tmp4)
          to label %invoke.cont7 unwind label %lpad

invoke.cont7:                                     ; preds = %invoke.cont6
  invoke void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEEC1ERKS8_(%"class.boost::bfs_visitor"* %agg.tmp2, %"class.boost::bfs_visitor"* %call8)
          to label %invoke.cont9 unwind label %lpad

invoke.cont9:                                     ; preds = %invoke.cont7
  %8 = load %"struct.boost::bgl_named_params.17"** %params.addr, align 4
  invoke void @_ZN5boost6detail10bfs_helperINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEENS_17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapIS5_jEEEENS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEESE_INS_16on_non_tree_edgeEEEEESK_NS_15graph_visitor_tES5_EEvRT_NS_12graph_traitsISM_E17vertex_descriptorET0_T1_RKNS_16bgl_named_paramsIT2_T3_T4_EEPNS_11enable_if_cIXsr19is_base_and_derivedINS_21vertex_list_graph_tagENSP_18traversal_categoryEEE5valueEvE4typeE(%"class.boost::adjacency_list"* %1, i32 %2, %"struct.boost::two_bit_color_map"* %agg.tmp, %"class.boost::bfs_visitor"* %agg.tmp2, %"struct.boost::bgl_named_params.17"* %8, i8* null)
          to label %invoke.cont11 unwind label %lpad10

invoke.cont11:                                    ; preds = %invoke.cont9
  invoke void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEED1Ev(%"class.boost::bfs_visitor"* %agg.tmp2)
          to label %invoke.cont12 unwind label %lpad

invoke.cont12:                                    ; preds = %invoke.cont11
  call void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED1Ev(%"struct.boost::two_bit_color_map"* %agg.tmp)
  ret void

lpad:                                             ; preds = %invoke.cont11, %invoke.cont7, %invoke.cont6, %invoke.cont, %entry
  %9 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %10 = extractvalue { i8*, i32 } %9, 0
  store i8* %10, i8** %exn.slot
  %11 = extractvalue { i8*, i32 } %9, 1
  store i32 %11, i32* %ehselector.slot
  br label %ehcleanup

lpad10:                                           ; preds = %invoke.cont9
  %12 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %13 = extractvalue { i8*, i32 } %12, 0
  store i8* %13, i8** %exn.slot
  %14 = extractvalue { i8*, i32 } %12, 1
  store i32 %14, i32* %ehselector.slot
  invoke void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEED1Ev(%"class.boost::bfs_visitor"* %agg.tmp2)
          to label %invoke.cont13 unwind label %terminate.lpad

invoke.cont13:                                    ; preds = %lpad10
  br label %ehcleanup

ehcleanup:                                        ; preds = %invoke.cont13, %lpad
  invoke void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED1Ev(%"struct.boost::two_bit_color_map"* %agg.tmp)
          to label %invoke.cont14 unwind label %terminate.lpad

invoke.cont14:                                    ; preds = %ehcleanup
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont14
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val15 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val15

terminate.lpad:                                   ; preds = %ehcleanup, %lpad10
  %15 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost9get_paramINS_14vertex_color_tENS_16bgl_named_paramsINS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES5_INS_16on_non_tree_edgeEEEEENS_15graph_visitor_tENS_11no_propertyEEEEERKNS_22lookup_named_param_defIT_T0_NS_15param_not_foundEE4typeERKSH_SG_(%"struct.boost::bgl_named_params.17"* %p, i32) inlinehint {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params.17"*, align 4
  %.addr = alloca i32, align 4
  %ref.tmp = alloca %"struct.boost::param_not_found", align 1
  store %"struct.boost::bgl_named_params.17"* %p, %"struct.boost::bgl_named_params.17"** %p.addr, align 4
  store i32 %0, i32* %.addr, align 4
  %1 = load %"struct.boost::bgl_named_params.17"** %p.addr, align 4
  %call = call %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_14vertex_color_tENS_16bgl_named_paramsINS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES5_INS_16on_non_tree_edgeEEEEENS_15graph_visitor_tENS_11no_propertyEEENS_15param_not_foundEE3getERKSE_RKSF_(%"struct.boost::bgl_named_params.17"* %1, %"struct.boost::param_not_found"* %ref.tmp)
  ret %"struct.boost::param_not_found"* %call
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_14vertex_color_tENS_16bgl_named_paramsINS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES5_INS_16on_non_tree_edgeEEEEENS_15graph_visitor_tENS_11no_propertyEEENS_15param_not_foundEE3getERKSE_RKSF_(%"struct.boost::bgl_named_params.17"* %p, %"struct.boost::param_not_found"* %def) align 2 {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params.17"*, align 4
  %def.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::bgl_named_params.17"* %p, %"struct.boost::bgl_named_params.17"** %p.addr, align 4
  store %"struct.boost::param_not_found"* %def, %"struct.boost::param_not_found"** %def.addr, align 4
  %0 = load %"struct.boost::bgl_named_params.17"** %p.addr, align 4
  %m_base = getelementptr inbounds %"struct.boost::bgl_named_params.17"* %0, i32 0, i32 1
  %1 = load %"struct.boost::param_not_found"** %def.addr, align 4
  %call = call %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_14vertex_color_tENS_11no_propertyENS_15param_not_foundEE3getERKS2_RKS3_(%"struct.boost::no_property"* %m_base, %"struct.boost::param_not_found"* %1)
  ret %"struct.boost::param_not_found"* %call
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_14vertex_color_tENS_11no_propertyENS_15param_not_foundEE3getERKS2_RKS3_(%"struct.boost::no_property"*, %"struct.boost::param_not_found"* %def) nounwind align 2 {
entry:
  %.addr = alloca %"struct.boost::no_property"*, align 4
  %def.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::no_property"* %0, %"struct.boost::no_property"** %.addr, align 4
  store %"struct.boost::param_not_found"* %def, %"struct.boost::param_not_found"** %def.addr, align 4
  %1 = load %"struct.boost::param_not_found"** %def.addr, align 4
  ret %"struct.boost::param_not_found"* %1
}

define linkonce_odr void @_ZN5boost6detail10bfs_helperINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEENS_17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapIS5_jEEEENS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEESE_INS_16on_non_tree_edgeEEEEESK_NS_15graph_visitor_tES5_EEvRT_NS_12graph_traitsISM_E17vertex_descriptorET0_T1_RKNS_16bgl_named_paramsIT2_T3_T4_EEPNS_11enable_if_cIXsr19is_base_and_derivedINS_21vertex_list_graph_tagENSP_18traversal_categoryEEE5valueEvE4typeE(%"class.boost::adjacency_list"* %g, i32 %s, %"struct.boost::two_bit_color_map"* %color, %"class.boost::bfs_visitor"* %vis, %"struct.boost::bgl_named_params.17"* %params, i8*) {
entry:
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %s.addr = alloca i32, align 4
  %params.addr = alloca %"struct.boost::bgl_named_params.17"*, align 4
  %.addr = alloca i8*, align 4
  %Q = alloca %"class.boost::queue", align 4
  %agg.tmp = alloca %"struct.boost::buffer_param_t", align 1
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %ref.tmp = alloca %"class.boost::reference_wrapper", align 4
  %tmp = alloca %"class.boost::reference_wrapper", align 4
  %agg.tmp5 = alloca %"class.boost::bfs_visitor", align 4
  %agg.tmp7 = alloca %"struct.boost::two_bit_color_map", align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store i32 %s, i32* %s.addr, align 4
  store %"struct.boost::bgl_named_params.17"* %params, %"struct.boost::bgl_named_params.17"** %params.addr, align 4
  store i8* %0, i8** %.addr, align 4
  call void @_ZN5boost5queueIjSt5dequeIjSaIjEEEC1Ev(%"class.boost::queue"* %Q)
  %1 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %2 = load i32* %s.addr, align 4
  %3 = load %"struct.boost::bgl_named_params.17"** %params.addr, align 4
  %call = invoke %"struct.boost::param_not_found"* @_ZN5boost9get_paramINS_14buffer_param_tENS_16bgl_named_paramsINS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES5_INS_16on_non_tree_edgeEEEEENS_15graph_visitor_tENS_11no_propertyEEEEERKNS_22lookup_named_param_defIT_T0_NS_15param_not_foundEE4typeERKSH_SG_(%"struct.boost::bgl_named_params.17"* %3)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  invoke void @_ZN5boost3refINS_5queueIjSt5dequeIjSaIjEEEEEEKNS_17reference_wrapperIT_EERS7_(%"class.boost::reference_wrapper"* sret %ref.tmp, %"class.boost::queue"* %Q)
          to label %invoke.cont1 unwind label %lpad

invoke.cont1:                                     ; preds = %invoke.cont
  invoke void @_ZN5boost12choose_paramINS_17reference_wrapperINS_5queueIjSt5dequeIjSaIjEEEEEEEET_RKNS_15param_not_foundERKS8_(%"class.boost::reference_wrapper"* sret %tmp, %"struct.boost::param_not_found"* %call, %"class.boost::reference_wrapper"* %ref.tmp)
          to label %invoke.cont2 unwind label %lpad

invoke.cont2:                                     ; preds = %invoke.cont1
  %call4 = invoke %"class.boost::queue"* @_ZNK5boost17reference_wrapperINS_5queueIjSt5dequeIjSaIjEEEEE3getEv(%"class.boost::reference_wrapper"* %tmp)
          to label %invoke.cont3 unwind label %lpad

invoke.cont3:                                     ; preds = %invoke.cont2
  invoke void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEEC1ERKS8_(%"class.boost::bfs_visitor"* %agg.tmp5, %"class.boost::bfs_visitor"* %vis)
          to label %invoke.cont6 unwind label %lpad

invoke.cont6:                                     ; preds = %invoke.cont3
  invoke void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEC1ERKS4_(%"struct.boost::two_bit_color_map"* %agg.tmp7, %"struct.boost::two_bit_color_map"* %color)
          to label %invoke.cont9 unwind label %lpad8

invoke.cont9:                                     ; preds = %invoke.cont6
  invoke void @_ZN5boost20breadth_first_searchINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_5queueIjSt5dequeIjSaIjEEEENS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEESE_INS_16on_non_tree_edgeEEEEENS_17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapIS4_jEEEEEEvRKT_NS_12graph_traitsISP_E17vertex_descriptorERT0_T1_T2_(%"class.boost::adjacency_list"* %1, i32 %2, %"class.boost::queue"* %call4, %"class.boost::bfs_visitor"* %agg.tmp5, %"struct.boost::two_bit_color_map"* %agg.tmp7)
          to label %invoke.cont11 unwind label %lpad10

invoke.cont11:                                    ; preds = %invoke.cont9
  invoke void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED1Ev(%"struct.boost::two_bit_color_map"* %agg.tmp7)
          to label %invoke.cont12 unwind label %lpad8

invoke.cont12:                                    ; preds = %invoke.cont11
  invoke void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEED1Ev(%"class.boost::bfs_visitor"* %agg.tmp5)
          to label %invoke.cont14 unwind label %lpad

invoke.cont14:                                    ; preds = %invoke.cont12
  call void @_ZN5boost5queueIjSt5dequeIjSaIjEEED1Ev(%"class.boost::queue"* %Q)
  ret void

lpad:                                             ; preds = %invoke.cont12, %invoke.cont3, %invoke.cont2, %invoke.cont1, %invoke.cont, %entry
  %4 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %5 = extractvalue { i8*, i32 } %4, 0
  store i8* %5, i8** %exn.slot
  %6 = extractvalue { i8*, i32 } %4, 1
  store i32 %6, i32* %ehselector.slot
  br label %ehcleanup16

lpad8:                                            ; preds = %invoke.cont11, %invoke.cont6
  %7 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %8 = extractvalue { i8*, i32 } %7, 0
  store i8* %8, i8** %exn.slot
  %9 = extractvalue { i8*, i32 } %7, 1
  store i32 %9, i32* %ehselector.slot
  br label %ehcleanup

lpad10:                                           ; preds = %invoke.cont9
  %10 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %11 = extractvalue { i8*, i32 } %10, 0
  store i8* %11, i8** %exn.slot
  %12 = extractvalue { i8*, i32 } %10, 1
  store i32 %12, i32* %ehselector.slot
  invoke void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED1Ev(%"struct.boost::two_bit_color_map"* %agg.tmp7)
          to label %invoke.cont13 unwind label %terminate.lpad

invoke.cont13:                                    ; preds = %lpad10
  br label %ehcleanup

ehcleanup:                                        ; preds = %invoke.cont13, %lpad8
  invoke void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEED1Ev(%"class.boost::bfs_visitor"* %agg.tmp5)
          to label %invoke.cont15 unwind label %terminate.lpad

invoke.cont15:                                    ; preds = %ehcleanup
  br label %ehcleanup16

ehcleanup16:                                      ; preds = %invoke.cont15, %lpad
  invoke void @_ZN5boost5queueIjSt5dequeIjSaIjEEED1Ev(%"class.boost::queue"* %Q)
          to label %invoke.cont17 unwind label %terminate.lpad

invoke.cont17:                                    ; preds = %ehcleanup16
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont17
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val18 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val18

terminate.lpad:                                   ; preds = %ehcleanup16, %ehcleanup, %lpad10
  %13 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost22make_two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEENS_17two_bit_color_mapIT_EEjRKS5_(%"struct.boost::two_bit_color_map"* noalias sret %agg.result, i32 %n, %"struct.boost::vec_adj_list_vertex_id_map"* %index_map) inlinehint {
entry:
  %n.addr = alloca i32, align 4
  %index_map.addr = alloca %"struct.boost::vec_adj_list_vertex_id_map"*, align 4
  store i32 %n, i32* %n.addr, align 4
  store %"struct.boost::vec_adj_list_vertex_id_map"* %index_map, %"struct.boost::vec_adj_list_vertex_id_map"** %index_map.addr, align 4
  %0 = load i32* %n.addr, align 4
  %1 = load %"struct.boost::vec_adj_list_vertex_id_map"** %index_map.addr, align 4
  call void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEC1EjRKS3_(%"struct.boost::two_bit_color_map"* %agg.result, i32 %0, %"struct.boost::vec_adj_list_vertex_id_map"* %1)
  ret void
}

define linkonce_odr void @_ZN5boost17choose_const_pmapINS_15param_not_foundENS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEENS_14vertex_index_tEEENS_6detail18choose_impl_resultIN4mpl_5bool_ILb1EEET0_T_T1_E4typeERKSF_RKSE_SG_(%"struct.boost::vec_adj_list_vertex_id_map"* noalias sret %agg.result, %"struct.boost::param_not_found"* %p, %"class.boost::adjacency_list"* %g, i32 %tag) {
entry:
  %p.addr = alloca %"struct.boost::param_not_found"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tag.addr = alloca i32, align 4
  %agg.tmp = alloca %"struct.mpl_::bool_", align 1
  store %"struct.boost::param_not_found"* %p, %"struct.boost::param_not_found"** %p.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store i32 %tag, i32* %tag.addr, align 4
  %0 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %"struct.boost::param_not_found"** %p.addr, align 4
  %2 = load i32* %tag.addr, align 4
  call void @_ZN5boost6detail18choose_impl_helperILb0EE1fINS_15param_not_foundENS_14adjacency_listINS_4vecSES6_NS_9directedSENS_11no_propertyES8_S8_NS_5listSEEENS_14vertex_index_tEEENS_12property_mapINS_12remove_constIT0_E4typeET1_E10const_typeEN4mpl_5bool_ILb1EEERKSE_RKT_SH_(%"struct.boost::vec_adj_list_vertex_id_map"* sret %agg.result, %"class.boost::adjacency_list"* %0, %"struct.boost::param_not_found"* %1, i32 %2)
  ret void
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost9get_paramINS_14vertex_index_tENS_16bgl_named_paramsINS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES5_INS_16on_non_tree_edgeEEEEENS_15graph_visitor_tENS_11no_propertyEEEEERKNS_22lookup_named_param_defIT_T0_NS_15param_not_foundEE4typeERKSH_SG_(%"struct.boost::bgl_named_params.17"* %p, i32) inlinehint {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params.17"*, align 4
  %.addr = alloca i32, align 4
  %ref.tmp = alloca %"struct.boost::param_not_found", align 1
  store %"struct.boost::bgl_named_params.17"* %p, %"struct.boost::bgl_named_params.17"** %p.addr, align 4
  store i32 %0, i32* %.addr, align 4
  %1 = load %"struct.boost::bgl_named_params.17"** %p.addr, align 4
  %call = call %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_14vertex_index_tENS_16bgl_named_paramsINS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES5_INS_16on_non_tree_edgeEEEEENS_15graph_visitor_tENS_11no_propertyEEENS_15param_not_foundEE3getERKSE_RKSF_(%"struct.boost::bgl_named_params.17"* %1, %"struct.boost::param_not_found"* %ref.tmp)
  ret %"struct.boost::param_not_found"* %call
}

define linkonce_odr void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEEC1ERKS8_(%"class.boost::bfs_visitor"* %this, %"class.boost::bfs_visitor"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::bfs_visitor"*, align 4
  %.addr = alloca %"class.boost::bfs_visitor"*, align 4
  store %"class.boost::bfs_visitor"* %this, %"class.boost::bfs_visitor"** %this.addr, align 4
  store %"class.boost::bfs_visitor"* %0, %"class.boost::bfs_visitor"** %.addr, align 4
  %this1 = load %"class.boost::bfs_visitor"** %this.addr
  %1 = load %"class.boost::bfs_visitor"** %.addr
  call void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEEC2ERKS8_(%"class.boost::bfs_visitor"* %this1, %"class.boost::bfs_visitor"* %1)
  ret void
}

define linkonce_odr %"class.boost::bfs_visitor"* @_ZN5boost12choose_paramINS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES3_INS_16on_non_tree_edgeEEEEENS1_INS_12null_visitorEEEEERKT_SE_RKT0_(%"class.boost::bfs_visitor"* %param, %"class.boost::bfs_visitor.27"*) nounwind {
entry:
  %param.addr = alloca %"class.boost::bfs_visitor"*, align 4
  %.addr = alloca %"class.boost::bfs_visitor.27"*, align 4
  store %"class.boost::bfs_visitor"* %param, %"class.boost::bfs_visitor"** %param.addr, align 4
  store %"class.boost::bfs_visitor.27"* %0, %"class.boost::bfs_visitor.27"** %.addr, align 4
  %1 = load %"class.boost::bfs_visitor"** %param.addr, align 4
  ret %"class.boost::bfs_visitor"* %1
}

define linkonce_odr %"class.boost::bfs_visitor"* @_ZN5boost9get_paramINS_15graph_visitor_tENS_16bgl_named_paramsINS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES5_INS_16on_non_tree_edgeEEEEES1_NS_11no_propertyEEEEERKNS_22lookup_named_param_defIT_T0_NS_15param_not_foundEE4typeERKSG_SF_(%"struct.boost::bgl_named_params.17"* %p, i32) inlinehint {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params.17"*, align 4
  %.addr = alloca i32, align 4
  %ref.tmp = alloca %"struct.boost::param_not_found", align 1
  store %"struct.boost::bgl_named_params.17"* %p, %"struct.boost::bgl_named_params.17"** %p.addr, align 4
  store i32 %0, i32* %.addr, align 4
  %1 = load %"struct.boost::bgl_named_params.17"** %p.addr, align 4
  %call = call %"class.boost::bfs_visitor"* @_ZN5boost22lookup_named_param_defINS_15graph_visitor_tENS_16bgl_named_paramsINS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES5_INS_16on_non_tree_edgeEEEEES1_NS_11no_propertyEEENS_15param_not_foundEE3getERKSD_RKSE_(%"struct.boost::bgl_named_params.17"* %1, %"struct.boost::param_not_found"* %ref.tmp)
  ret %"class.boost::bfs_visitor"* %call
}

define linkonce_odr void @_ZN5boost16make_bfs_visitorINS_12null_visitorEEENS_11bfs_visitorIT_EES3_(%"class.boost::bfs_visitor.27"* noalias sret %agg.result) {
entry:
  %vis = alloca %"struct.boost::null_visitor", align 1
  %agg.tmp = alloca %"struct.boost::null_visitor", align 1
  call void @_ZN5boost11bfs_visitorINS_12null_visitorEEC1ES1_(%"class.boost::bfs_visitor.27"* %agg.result)
  ret void
}

define linkonce_odr void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED1Ev(%"struct.boost::two_bit_color_map"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::two_bit_color_map"*, align 4
  store %"struct.boost::two_bit_color_map"* %this, %"struct.boost::two_bit_color_map"** %this.addr, align 4
  %this1 = load %"struct.boost::two_bit_color_map"** %this.addr
  call void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED2Ev(%"struct.boost::two_bit_color_map"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED2Ev(%"struct.boost::two_bit_color_map"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::two_bit_color_map"*, align 4
  store %"struct.boost::two_bit_color_map"* %this, %"struct.boost::two_bit_color_map"** %this.addr, align 4
  %this1 = load %"struct.boost::two_bit_color_map"** %this.addr
  %data = getelementptr inbounds %"struct.boost::two_bit_color_map"* %this1, i32 0, i32 2
  call void @_ZN5boost12shared_arrayIhED1Ev(%"class.boost::shared_array"* %data)
  ret void
}

define linkonce_odr void @_ZN5boost12shared_arrayIhED1Ev(%"class.boost::shared_array"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::shared_array"*, align 4
  store %"class.boost::shared_array"* %this, %"class.boost::shared_array"** %this.addr, align 4
  %this1 = load %"class.boost::shared_array"** %this.addr
  call void @_ZN5boost12shared_arrayIhED2Ev(%"class.boost::shared_array"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost12shared_arrayIhED2Ev(%"class.boost::shared_array"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::shared_array"*, align 4
  store %"class.boost::shared_array"* %this, %"class.boost::shared_array"** %this.addr, align 4
  %this1 = load %"class.boost::shared_array"** %this.addr
  %pn = getelementptr inbounds %"class.boost::shared_array"* %this1, i32 0, i32 1
  call void @_ZN5boost6detail12shared_countD1Ev(%"class.boost::detail::shared_count"* %pn)
  ret void
}

define linkonce_odr void @_ZN5boost6detail12shared_countD1Ev(%"class.boost::detail::shared_count"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::shared_count"*, align 4
  store %"class.boost::detail::shared_count"* %this, %"class.boost::detail::shared_count"** %this.addr, align 4
  %this1 = load %"class.boost::detail::shared_count"** %this.addr
  call void @_ZN5boost6detail12shared_countD2Ev(%"class.boost::detail::shared_count"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost6detail12shared_countD2Ev(%"class.boost::detail::shared_count"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::shared_count"*, align 4
  store %"class.boost::detail::shared_count"* %this, %"class.boost::detail::shared_count"** %this.addr, align 4
  %this1 = load %"class.boost::detail::shared_count"** %this.addr
  %pi_ = getelementptr inbounds %"class.boost::detail::shared_count"* %this1, i32 0, i32 0
  %0 = load %"class.boost::detail::sp_counted_base"** %pi_, align 4
  %cmp = icmp ne %"class.boost::detail::sp_counted_base"* %0, null
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %pi_2 = getelementptr inbounds %"class.boost::detail::shared_count"* %this1, i32 0, i32 0
  %1 = load %"class.boost::detail::sp_counted_base"** %pi_2, align 4
  call void @_ZN5boost6detail15sp_counted_base7releaseEv(%"class.boost::detail::sp_counted_base"* %1)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
  ret void
}

define linkonce_odr void @_ZN5boost6detail15sp_counted_base7releaseEv(%"class.boost::detail::sp_counted_base"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_base"*, align 4
  store %"class.boost::detail::sp_counted_base"* %this, %"class.boost::detail::sp_counted_base"** %this.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_base"** %this.addr
  %use_count_ = getelementptr inbounds %"class.boost::detail::sp_counted_base"* %this1, i32 0, i32 1
  %call = call i32 @_ZN5boost6detail23atomic_exchange_and_addEPii(i32* %use_count_, i32 -1)
  %cmp = icmp eq i32 %call, 1
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %0 = bitcast %"class.boost::detail::sp_counted_base"* %this1 to void (%"class.boost::detail::sp_counted_base"*)***
  %vtable = load void (%"class.boost::detail::sp_counted_base"*)*** %0
  %vfn = getelementptr inbounds void (%"class.boost::detail::sp_counted_base"*)** %vtable, i64 2
  %1 = load void (%"class.boost::detail::sp_counted_base"*)** %vfn
  call void %1(%"class.boost::detail::sp_counted_base"* %this1)
  call void @_ZN5boost6detail15sp_counted_base12weak_releaseEv(%"class.boost::detail::sp_counted_base"* %this1)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
  ret void
}

define linkonce_odr i32 @_ZN5boost6detail23atomic_exchange_and_addEPii(i32* %pw, i32 %dv) nounwind inlinehint {
entry:
  %pw.addr = alloca i32*, align 4
  %dv.addr = alloca i32, align 4
  %r = alloca i32, align 4
  store i32* %pw, i32** %pw.addr, align 4
  store i32 %dv, i32* %dv.addr, align 4
  %0 = load i32** %pw.addr, align 4
  %1 = load i32** %pw.addr, align 4
  %2 = load i32* %dv.addr, align 4
  %3 = call i32 asm sideeffect "lock\0A\09xadd $1, $0", "=*m,=r,*m,1,~{memory},~{cc},~{dirflag},~{fpsr},~{flags}"(i32* %0, i32* %1, i32 %2) nounwind, !srcloc !0
  store i32 %3, i32* %r, align 4
  %4 = load i32* %r, align 4
  ret i32 %4
}

define linkonce_odr void @_ZN5boost6detail15sp_counted_base12weak_releaseEv(%"class.boost::detail::sp_counted_base"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_base"*, align 4
  store %"class.boost::detail::sp_counted_base"* %this, %"class.boost::detail::sp_counted_base"** %this.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_base"** %this.addr
  %weak_count_ = getelementptr inbounds %"class.boost::detail::sp_counted_base"* %this1, i32 0, i32 2
  %call = call i32 @_ZN5boost6detail23atomic_exchange_and_addEPii(i32* %weak_count_, i32 -1)
  %cmp = icmp eq i32 %call, 1
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %0 = bitcast %"class.boost::detail::sp_counted_base"* %this1 to void (%"class.boost::detail::sp_counted_base"*)***
  %vtable = load void (%"class.boost::detail::sp_counted_base"*)*** %0
  %vfn = getelementptr inbounds void (%"class.boost::detail::sp_counted_base"*)** %vtable, i64 3
  %1 = load void (%"class.boost::detail::sp_counted_base"*)** %vfn
  call void %1(%"class.boost::detail::sp_counted_base"* %this1)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
  ret void
}

define linkonce_odr void @_ZN5boost11bfs_visitorINS_12null_visitorEEC1ES1_(%"class.boost::bfs_visitor.27"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::bfs_visitor.27"*, align 4
  %vis = alloca %"struct.boost::null_visitor", align 1
  store %"class.boost::bfs_visitor.27"* %this, %"class.boost::bfs_visitor.27"** %this.addr, align 4
  %this1 = load %"class.boost::bfs_visitor.27"** %this.addr
  call void @_ZN5boost11bfs_visitorINS_12null_visitorEEC2ES1_(%"class.boost::bfs_visitor.27"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost11bfs_visitorINS_12null_visitorEEC2ES1_(%"class.boost::bfs_visitor.27"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::bfs_visitor.27"*, align 4
  %vis = alloca %"struct.boost::null_visitor", align 1
  store %"class.boost::bfs_visitor.27"* %this, %"class.boost::bfs_visitor.27"** %this.addr, align 4
  %this1 = load %"class.boost::bfs_visitor.27"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::bfs_visitor.27"* %this1, i32 0, i32 0
  ret void
}

define linkonce_odr %"class.boost::bfs_visitor"* @_ZN5boost22lookup_named_param_defINS_15graph_visitor_tENS_16bgl_named_paramsINS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES5_INS_16on_non_tree_edgeEEEEES1_NS_11no_propertyEEENS_15param_not_foundEE3getERKSD_RKSE_(%"struct.boost::bgl_named_params.17"* %p, %"struct.boost::param_not_found"*) nounwind align 2 {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params.17"*, align 4
  %.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::bgl_named_params.17"* %p, %"struct.boost::bgl_named_params.17"** %p.addr, align 4
  store %"struct.boost::param_not_found"* %0, %"struct.boost::param_not_found"** %.addr, align 4
  %1 = load %"struct.boost::bgl_named_params.17"** %p.addr, align 4
  %m_value = getelementptr inbounds %"struct.boost::bgl_named_params.17"* %1, i32 0, i32 0
  ret %"class.boost::bfs_visitor"* %m_value
}

define linkonce_odr void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEEC2ERKS8_(%"class.boost::bfs_visitor"* %this, %"class.boost::bfs_visitor"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::bfs_visitor"*, align 4
  %.addr = alloca %"class.boost::bfs_visitor"*, align 4
  store %"class.boost::bfs_visitor"* %this, %"class.boost::bfs_visitor"** %this.addr, align 4
  store %"class.boost::bfs_visitor"* %0, %"class.boost::bfs_visitor"** %.addr, align 4
  %this1 = load %"class.boost::bfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::bfs_visitor"* %this1, i32 0, i32 0
  %1 = load %"class.boost::bfs_visitor"** %.addr, align 4
  %m_vis2 = getelementptr inbounds %"class.boost::bfs_visitor"* %1, i32 0, i32 0
  call void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES0_INS1_16on_non_tree_edgeEEEC1ERKS6_(%"struct.std::pair.18"* %m_vis, %"struct.std::pair.18"* %m_vis2)
  ret void
}

define linkonce_odr void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES0_INS1_16on_non_tree_edgeEEEC1ERKS6_(%"struct.std::pair.18"* %this, %"struct.std::pair.18"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.18"*, align 4
  %.addr = alloca %"struct.std::pair.18"*, align 4
  store %"struct.std::pair.18"* %this, %"struct.std::pair.18"** %this.addr, align 4
  store %"struct.std::pair.18"* %0, %"struct.std::pair.18"** %.addr, align 4
  %this1 = load %"struct.std::pair.18"** %this.addr
  %1 = load %"struct.std::pair.18"** %.addr
  call void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES0_INS1_16on_non_tree_edgeEEEC2ERKS6_(%"struct.std::pair.18"* %this1, %"struct.std::pair.18"* %1)
  ret void
}

define linkonce_odr void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES0_INS1_16on_non_tree_edgeEEEC2ERKS6_(%"struct.std::pair.18"* %this, %"struct.std::pair.18"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.18"*, align 4
  %.addr = alloca %"struct.std::pair.18"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.std::pair.18"* %this, %"struct.std::pair.18"** %this.addr, align 4
  store %"struct.std::pair.18"* %0, %"struct.std::pair.18"** %.addr, align 4
  %this1 = load %"struct.std::pair.18"** %this.addr
  %first = getelementptr inbounds %"struct.std::pair.18"* %this1, i32 0, i32 0
  %1 = load %"struct.std::pair.18"** %.addr, align 4
  %first2 = getelementptr inbounds %"struct.std::pair.18"* %1, i32 0, i32 0
  call void @_ZN12edge_printerIN5boost12on_tree_edgeEEC1ERKS2_(%struct.edge_printer* %first, %struct.edge_printer* %first2)
  %second = getelementptr inbounds %"struct.std::pair.18"* %this1, i32 0, i32 1
  %2 = load %"struct.std::pair.18"** %.addr, align 4
  %second3 = getelementptr inbounds %"struct.std::pair.18"* %2, i32 0, i32 1
  invoke void @_ZN12edge_printerIN5boost16on_non_tree_edgeEEC1ERKS2_(%struct.edge_printer.19* %second, %struct.edge_printer.19* %second3)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  ret void

lpad:                                             ; preds = %entry
  %3 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %4 = extractvalue { i8*, i32 } %3, 0
  store i8* %4, i8** %exn.slot
  %5 = extractvalue { i8*, i32 } %3, 1
  store i32 %5, i32* %ehselector.slot
  invoke void @_ZN12edge_printerIN5boost12on_tree_edgeEED1Ev(%struct.edge_printer* %first)
          to label %invoke.cont4 unwind label %terminate.lpad

invoke.cont4:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont4
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val5 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val5

terminate.lpad:                                   ; preds = %lpad
  %6 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN12edge_printerIN5boost12on_tree_edgeEEC1ERKS2_(%struct.edge_printer* %this, %struct.edge_printer*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %struct.edge_printer*, align 4
  %.addr = alloca %struct.edge_printer*, align 4
  store %struct.edge_printer* %this, %struct.edge_printer** %this.addr, align 4
  store %struct.edge_printer* %0, %struct.edge_printer** %.addr, align 4
  %this1 = load %struct.edge_printer** %this.addr
  %1 = load %struct.edge_printer** %.addr
  call void @_ZN12edge_printerIN5boost12on_tree_edgeEEC2ERKS2_(%struct.edge_printer* %this1, %struct.edge_printer* %1)
  ret void
}

define linkonce_odr void @_ZN12edge_printerIN5boost16on_non_tree_edgeEEC1ERKS2_(%struct.edge_printer.19* %this, %struct.edge_printer.19*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %struct.edge_printer.19*, align 4
  %.addr = alloca %struct.edge_printer.19*, align 4
  store %struct.edge_printer.19* %this, %struct.edge_printer.19** %this.addr, align 4
  store %struct.edge_printer.19* %0, %struct.edge_printer.19** %.addr, align 4
  %this1 = load %struct.edge_printer.19** %this.addr
  %1 = load %struct.edge_printer.19** %.addr
  call void @_ZN12edge_printerIN5boost16on_non_tree_edgeEEC2ERKS2_(%struct.edge_printer.19* %this1, %struct.edge_printer.19* %1)
  ret void
}

define linkonce_odr void @_ZN12edge_printerIN5boost16on_non_tree_edgeEEC2ERKS2_(%struct.edge_printer.19* %this, %struct.edge_printer.19*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %struct.edge_printer.19*, align 4
  %.addr = alloca %struct.edge_printer.19*, align 4
  store %struct.edge_printer.19* %this, %struct.edge_printer.19** %this.addr, align 4
  store %struct.edge_printer.19* %0, %struct.edge_printer.19** %.addr, align 4
  %this1 = load %struct.edge_printer.19** %this.addr
  %1 = bitcast %struct.edge_printer.19* %this1 to %"struct.boost::base_visitor.20"*
  %2 = load %struct.edge_printer.19** %.addr, align 4
  %3 = bitcast %struct.edge_printer.19* %2 to %"struct.boost::base_visitor.20"*
  %m_edge_type = getelementptr inbounds %struct.edge_printer.19* %this1, i32 0, i32 0
  %4 = load %struct.edge_printer.19** %.addr, align 4
  %m_edge_type2 = getelementptr inbounds %struct.edge_printer.19* %4, i32 0, i32 0
  call void @_ZNSsC1ERKSs(%"class.std::basic_string"* %m_edge_type, %"class.std::basic_string"* %m_edge_type2)
  ret void
}

declare void @_ZNSsC1ERKSs(%"class.std::basic_string"*, %"class.std::basic_string"*)

define linkonce_odr void @_ZN12edge_printerIN5boost12on_tree_edgeEEC2ERKS2_(%struct.edge_printer* %this, %struct.edge_printer*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %struct.edge_printer*, align 4
  %.addr = alloca %struct.edge_printer*, align 4
  store %struct.edge_printer* %this, %struct.edge_printer** %this.addr, align 4
  store %struct.edge_printer* %0, %struct.edge_printer** %.addr, align 4
  %this1 = load %struct.edge_printer** %this.addr
  %1 = bitcast %struct.edge_printer* %this1 to %"struct.boost::base_visitor"*
  %2 = load %struct.edge_printer** %.addr, align 4
  %3 = bitcast %struct.edge_printer* %2 to %"struct.boost::base_visitor"*
  %m_edge_type = getelementptr inbounds %struct.edge_printer* %this1, i32 0, i32 0
  %4 = load %struct.edge_printer** %.addr, align 4
  %m_edge_type2 = getelementptr inbounds %struct.edge_printer* %4, i32 0, i32 0
  call void @_ZNSsC1ERKSs(%"class.std::basic_string"* %m_edge_type, %"class.std::basic_string"* %m_edge_type2)
  ret void
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_14vertex_index_tENS_16bgl_named_paramsINS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES5_INS_16on_non_tree_edgeEEEEENS_15graph_visitor_tENS_11no_propertyEEENS_15param_not_foundEE3getERKSE_RKSF_(%"struct.boost::bgl_named_params.17"* %p, %"struct.boost::param_not_found"* %def) align 2 {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params.17"*, align 4
  %def.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::bgl_named_params.17"* %p, %"struct.boost::bgl_named_params.17"** %p.addr, align 4
  store %"struct.boost::param_not_found"* %def, %"struct.boost::param_not_found"** %def.addr, align 4
  %0 = load %"struct.boost::bgl_named_params.17"** %p.addr, align 4
  %m_base = getelementptr inbounds %"struct.boost::bgl_named_params.17"* %0, i32 0, i32 1
  %1 = load %"struct.boost::param_not_found"** %def.addr, align 4
  %call = call %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_14vertex_index_tENS_11no_propertyENS_15param_not_foundEE3getERKS2_RKS3_(%"struct.boost::no_property"* %m_base, %"struct.boost::param_not_found"* %1)
  ret %"struct.boost::param_not_found"* %call
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_14vertex_index_tENS_11no_propertyENS_15param_not_foundEE3getERKS2_RKS3_(%"struct.boost::no_property"*, %"struct.boost::param_not_found"* %def) nounwind align 2 {
entry:
  %.addr = alloca %"struct.boost::no_property"*, align 4
  %def.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::no_property"* %0, %"struct.boost::no_property"** %.addr, align 4
  store %"struct.boost::param_not_found"* %def, %"struct.boost::param_not_found"** %def.addr, align 4
  %1 = load %"struct.boost::param_not_found"** %def.addr, align 4
  ret %"struct.boost::param_not_found"* %1
}

define linkonce_odr void @_ZN5boost6detail18choose_impl_helperILb0EE1fINS_15param_not_foundENS_14adjacency_listINS_4vecSES6_NS_9directedSENS_11no_propertyES8_S8_NS_5listSEEENS_14vertex_index_tEEENS_12property_mapINS_12remove_constIT0_E4typeET1_E10const_typeEN4mpl_5bool_ILb1EEERKSE_RKT_SH_(%"struct.boost::vec_adj_list_vertex_id_map"* noalias sret %agg.result, %"class.boost::adjacency_list"* %g, %"struct.boost::param_not_found"*, i32 %tag) align 2 {
entry:
  %1 = alloca %"struct.mpl_::bool_", align 1
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %.addr = alloca %"struct.boost::param_not_found"*, align 4
  %tag.addr = alloca i32, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store %"struct.boost::param_not_found"* %0, %"struct.boost::param_not_found"** %.addr, align 4
  store i32 %tag, i32* %tag.addr, align 4
  %2 = load i32* %tag.addr, align 4
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = bitcast %"class.boost::adjacency_list"* %3 to %"struct.boost::adj_list_helper"*
  call void @_ZN5boost3getINS_6detail12adj_list_genINS_14adjacency_listINS_4vecSES4_NS_9directedSENS_11no_propertyES6_S6_NS_5listSEEES4_S4_S5_S6_S6_S6_S7_E6configENS_21directed_graph_helperISA_EENS_14vertex_index_tEEENS_12property_mapINT_10graph_typeET1_E10const_typeESH_RKNS_15adj_list_helperISF_T0_EE(%"struct.boost::vec_adj_list_vertex_id_map"* sret %agg.result, i32 %2, %"struct.boost::adj_list_helper"* %4)
  ret void
}

define linkonce_odr void @_ZN5boost3getINS_6detail12adj_list_genINS_14adjacency_listINS_4vecSES4_NS_9directedSENS_11no_propertyES6_S6_NS_5listSEEES4_S4_S5_S6_S6_S6_S7_E6configENS_21directed_graph_helperISA_EENS_14vertex_index_tEEENS_12property_mapINT_10graph_typeET1_E10const_typeESH_RKNS_15adj_list_helperISF_T0_EE(%"struct.boost::vec_adj_list_vertex_id_map"* noalias sret %agg.result, i32 %p, %"struct.boost::adj_list_helper"* %g) inlinehint {
entry:
  %p.addr = alloca i32, align 4
  %g.addr = alloca %"struct.boost::adj_list_helper"*, align 4
  %agg.tmp = alloca %"struct.boost::vertex_property_tag", align 1
  store i32 %p, i32* %p.addr, align 4
  store %"struct.boost::adj_list_helper"* %g, %"struct.boost::adj_list_helper"** %g.addr, align 4
  %0 = load %"struct.boost::adj_list_helper"** %g.addr, align 4
  %1 = load i32* %p.addr, align 4
  call void @_ZN5boost6detail12get_dispatchINS0_12adj_list_genINS_14adjacency_listINS_4vecSES4_NS_9directedSENS_11no_propertyES6_S6_NS_5listSEEES4_S4_S5_S6_S6_S6_S7_E6configENS_21directed_graph_helperISA_EENS_14vertex_index_tEEENS_12property_mapINT_10graph_typeET1_E10const_typeERKNS_15adj_list_helperISF_T0_EESH_NS_19vertex_property_tagE(%"struct.boost::vec_adj_list_vertex_id_map"* sret %agg.result, %"struct.boost::adj_list_helper"* %0, i32 %1)
  ret void
}

define linkonce_odr void @_ZN5boost6detail12get_dispatchINS0_12adj_list_genINS_14adjacency_listINS_4vecSES4_NS_9directedSENS_11no_propertyES6_S6_NS_5listSEEES4_S4_S5_S6_S6_S6_S7_E6configENS_21directed_graph_helperISA_EENS_14vertex_index_tEEENS_12property_mapINT_10graph_typeET1_E10const_typeERKNS_15adj_list_helperISF_T0_EESH_NS_19vertex_property_tagE(%"struct.boost::vec_adj_list_vertex_id_map"* noalias sret %agg.result, %"struct.boost::adj_list_helper"* %g, i32 %p) inlinehint {
entry:
  %g.addr = alloca %"struct.boost::adj_list_helper"*, align 4
  %p.addr = alloca i32, align 4
  %0 = alloca %"struct.boost::vertex_property_tag", align 1
  %cg = alloca %"class.boost::adjacency_list"*, align 4
  %ref.tmp = alloca %"class.boost::adjacency_list"*, align 4
  store %"struct.boost::adj_list_helper"* %g, %"struct.boost::adj_list_helper"** %g.addr, align 4
  store i32 %p, i32* %p.addr, align 4
  %1 = load %"struct.boost::adj_list_helper"** %g.addr, align 4
  %2 = bitcast %"struct.boost::adj_list_helper"* %1 to %"class.boost::adjacency_list"*
  store %"class.boost::adjacency_list"* %2, %"class.boost::adjacency_list"** %cg, align 4
  %3 = load %"class.boost::adjacency_list"** %cg, align 4
  store %"class.boost::adjacency_list"* %3, %"class.boost::adjacency_list"** %ref.tmp, align 4
  %4 = load i32* %p.addr, align 4
  call void @_ZN5boost26vec_adj_list_vertex_id_mapINS_11no_propertyEjEC1IPKNS_14adjacency_listINS_4vecSES5_NS_9directedSES1_S1_S1_NS_5listSEEEEERKT_NS_14vertex_index_tE(%"struct.boost::vec_adj_list_vertex_id_map"* %agg.result, %"class.boost::adjacency_list"** %ref.tmp, i32 %4)
  ret void
}

define linkonce_odr void @_ZN5boost26vec_adj_list_vertex_id_mapINS_11no_propertyEjEC1IPKNS_14adjacency_listINS_4vecSES5_NS_9directedSES1_S1_S1_NS_5listSEEEEERKT_NS_14vertex_index_tE(%"struct.boost::vec_adj_list_vertex_id_map"* %this, %"class.boost::adjacency_list"**, i32) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::vec_adj_list_vertex_id_map"*, align 4
  %.addr = alloca %"class.boost::adjacency_list"**, align 4
  %.addr1 = alloca i32, align 4
  store %"struct.boost::vec_adj_list_vertex_id_map"* %this, %"struct.boost::vec_adj_list_vertex_id_map"** %this.addr, align 4
  store %"class.boost::adjacency_list"** %0, %"class.boost::adjacency_list"*** %.addr, align 4
  store i32 %1, i32* %.addr1, align 4
  %this2 = load %"struct.boost::vec_adj_list_vertex_id_map"** %this.addr
  %2 = load %"class.boost::adjacency_list"*** %.addr
  %3 = load i32* %.addr1, align 4
  call void @_ZN5boost26vec_adj_list_vertex_id_mapINS_11no_propertyEjEC2IPKNS_14adjacency_listINS_4vecSES5_NS_9directedSES1_S1_S1_NS_5listSEEEEERKT_NS_14vertex_index_tE(%"struct.boost::vec_adj_list_vertex_id_map"* %this2, %"class.boost::adjacency_list"** %2, i32 %3)
  ret void
}

define linkonce_odr void @_ZN5boost26vec_adj_list_vertex_id_mapINS_11no_propertyEjEC2IPKNS_14adjacency_listINS_4vecSES5_NS_9directedSES1_S1_S1_NS_5listSEEEEERKT_NS_14vertex_index_tE(%"struct.boost::vec_adj_list_vertex_id_map"* %this, %"class.boost::adjacency_list"**, i32) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::vec_adj_list_vertex_id_map"*, align 4
  %.addr = alloca %"class.boost::adjacency_list"**, align 4
  %.addr1 = alloca i32, align 4
  store %"struct.boost::vec_adj_list_vertex_id_map"* %this, %"struct.boost::vec_adj_list_vertex_id_map"** %this.addr, align 4
  store %"class.boost::adjacency_list"** %0, %"class.boost::adjacency_list"*** %.addr, align 4
  store i32 %1, i32* %.addr1, align 4
  %this2 = load %"struct.boost::vec_adj_list_vertex_id_map"** %this.addr
  %2 = bitcast %"struct.boost::vec_adj_list_vertex_id_map"* %this2 to %"struct.boost::put_get_helper"*
  ret void
}

define linkonce_odr void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEC1EjRKS3_(%"struct.boost::two_bit_color_map"* %this, i32 %n, %"struct.boost::vec_adj_list_vertex_id_map"* %index) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::two_bit_color_map"*, align 4
  %n.addr = alloca i32, align 4
  %index.addr = alloca %"struct.boost::vec_adj_list_vertex_id_map"*, align 4
  store %"struct.boost::two_bit_color_map"* %this, %"struct.boost::two_bit_color_map"** %this.addr, align 4
  store i32 %n, i32* %n.addr, align 4
  store %"struct.boost::vec_adj_list_vertex_id_map"* %index, %"struct.boost::vec_adj_list_vertex_id_map"** %index.addr, align 4
  %this1 = load %"struct.boost::two_bit_color_map"** %this.addr
  %0 = load i32* %n.addr, align 4
  %1 = load %"struct.boost::vec_adj_list_vertex_id_map"** %index.addr
  call void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEC2EjRKS3_(%"struct.boost::two_bit_color_map"* %this1, i32 %0, %"struct.boost::vec_adj_list_vertex_id_map"* %1)
  ret void
}

define linkonce_odr void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEC2EjRKS3_(%"struct.boost::two_bit_color_map"* %this, i32 %n, %"struct.boost::vec_adj_list_vertex_id_map"* %index) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::two_bit_color_map"*, align 4
  %n.addr = alloca i32, align 4
  %index.addr = alloca %"struct.boost::vec_adj_list_vertex_id_map"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %ref.tmp = alloca i32, align 4
  store %"struct.boost::two_bit_color_map"* %this, %"struct.boost::two_bit_color_map"** %this.addr, align 4
  store i32 %n, i32* %n.addr, align 4
  store %"struct.boost::vec_adj_list_vertex_id_map"* %index, %"struct.boost::vec_adj_list_vertex_id_map"** %index.addr, align 4
  %this1 = load %"struct.boost::two_bit_color_map"** %this.addr
  %n2 = getelementptr inbounds %"struct.boost::two_bit_color_map"* %this1, i32 0, i32 0
  %0 = load i32* %n.addr, align 4
  store i32 %0, i32* %n2, align 4
  %index3 = getelementptr inbounds %"struct.boost::two_bit_color_map"* %this1, i32 0, i32 1
  %1 = load %"struct.boost::vec_adj_list_vertex_id_map"** %index.addr, align 4
  %data = getelementptr inbounds %"struct.boost::two_bit_color_map"* %this1, i32 0, i32 2
  %2 = load i32* %n.addr, align 4
  %add = add i32 %2, 4
  %sub = sub i32 %add, 1
  %div = udiv i32 %sub, 4
  %call = call noalias i8* @_Znaj(i32 %div)
  call void @_ZN5boost12shared_arrayIhEC1EPh(%"class.boost::shared_array"* %data, i8* %call)
  %data4 = getelementptr inbounds %"struct.boost::two_bit_color_map"* %this1, i32 0, i32 2
  %call5 = invoke i8* @_ZNK5boost12shared_arrayIhE3getEv(%"class.boost::shared_array"* %data4)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %data6 = getelementptr inbounds %"struct.boost::two_bit_color_map"* %this1, i32 0, i32 2
  %call8 = invoke i8* @_ZNK5boost12shared_arrayIhE3getEv(%"class.boost::shared_array"* %data6)
          to label %invoke.cont7 unwind label %lpad

invoke.cont7:                                     ; preds = %invoke.cont
  %3 = load i32* %n.addr, align 4
  %add9 = add i32 %3, 4
  %sub10 = sub i32 %add9, 1
  %div11 = udiv i32 %sub10, 4
  %add.ptr = getelementptr inbounds i8* %call8, i32 %div11
  store i32 0, i32* %ref.tmp, align 4
  invoke void @_ZSt4fillIPhiEvT_S1_RKT0_(i8* %call5, i8* %add.ptr, i32* %ref.tmp)
          to label %invoke.cont12 unwind label %lpad

invoke.cont12:                                    ; preds = %invoke.cont7
  ret void

lpad:                                             ; preds = %invoke.cont7, %invoke.cont, %entry
  %4 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %5 = extractvalue { i8*, i32 } %4, 0
  store i8* %5, i8** %exn.slot
  %6 = extractvalue { i8*, i32 } %4, 1
  store i32 %6, i32* %ehselector.slot
  invoke void @_ZN5boost12shared_arrayIhED1Ev(%"class.boost::shared_array"* %data)
          to label %invoke.cont13 unwind label %terminate.lpad

invoke.cont13:                                    ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont13
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val14 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val14

terminate.lpad:                                   ; preds = %lpad
  %7 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost12shared_arrayIhEC1EPh(%"class.boost::shared_array"* %this, i8* %p) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::shared_array"*, align 4
  %p.addr = alloca i8*, align 4
  store %"class.boost::shared_array"* %this, %"class.boost::shared_array"** %this.addr, align 4
  store i8* %p, i8** %p.addr, align 4
  %this1 = load %"class.boost::shared_array"** %this.addr
  %0 = load i8** %p.addr, align 4
  call void @_ZN5boost12shared_arrayIhEC2EPh(%"class.boost::shared_array"* %this1, i8* %0)
  ret void
}

declare noalias i8* @_Znaj(i32)

define linkonce_odr void @_ZSt4fillIPhiEvT_S1_RKT0_(i8* %__first, i8* %__last, i32* %__value) {
entry:
  %__first.addr = alloca i8*, align 4
  %__last.addr = alloca i8*, align 4
  %__value.addr = alloca i32*, align 4
  store i8* %__first, i8** %__first.addr, align 4
  store i8* %__last, i8** %__last.addr, align 4
  store i32* %__value, i32** %__value.addr, align 4
  %0 = load i8** %__first.addr, align 4
  %call = call i8* @_ZSt12__niter_baseIPhENSt11_Niter_baseIT_E13iterator_typeES2_(i8* %0)
  %1 = load i8** %__last.addr, align 4
  %call1 = call i8* @_ZSt12__niter_baseIPhENSt11_Niter_baseIT_E13iterator_typeES2_(i8* %1)
  %2 = load i32** %__value.addr, align 4
  call void @_ZSt8__fill_aIPhiEN9__gnu_cxx11__enable_ifIXsr11__is_scalarIT0_EE7__valueEvE6__typeET_S6_RKS3_(i8* %call, i8* %call1, i32* %2)
  ret void
}

define linkonce_odr i8* @_ZNK5boost12shared_arrayIhE3getEv(%"class.boost::shared_array"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::shared_array"*, align 4
  store %"class.boost::shared_array"* %this, %"class.boost::shared_array"** %this.addr, align 4
  %this1 = load %"class.boost::shared_array"** %this.addr
  %px = getelementptr inbounds %"class.boost::shared_array"* %this1, i32 0, i32 0
  %0 = load i8** %px, align 4
  ret i8* %0
}

define linkonce_odr void @_ZSt8__fill_aIPhiEN9__gnu_cxx11__enable_ifIXsr11__is_scalarIT0_EE7__valueEvE6__typeET_S6_RKS3_(i8* %__first, i8* %__last, i32* %__value) nounwind inlinehint {
entry:
  %__first.addr = alloca i8*, align 4
  %__last.addr = alloca i8*, align 4
  %__value.addr = alloca i32*, align 4
  %__tmp = alloca i32, align 4
  store i8* %__first, i8** %__first.addr, align 4
  store i8* %__last, i8** %__last.addr, align 4
  store i32* %__value, i32** %__value.addr, align 4
  %0 = load i32** %__value.addr, align 4
  %1 = load i32* %0, align 4
  store i32 %1, i32* %__tmp, align 4
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %2 = load i8** %__first.addr, align 4
  %3 = load i8** %__last.addr, align 4
  %cmp = icmp ne i8* %2, %3
  br i1 %cmp, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %4 = load i32* %__tmp, align 4
  %conv = trunc i32 %4 to i8
  %5 = load i8** %__first.addr, align 4
  store i8 %conv, i8* %5, align 1
  br label %for.inc

for.inc:                                          ; preds = %for.body
  %6 = load i8** %__first.addr, align 4
  %incdec.ptr = getelementptr inbounds i8* %6, i32 1
  store i8* %incdec.ptr, i8** %__first.addr, align 4
  br label %for.cond

for.end:                                          ; preds = %for.cond
  ret void
}

define linkonce_odr i8* @_ZSt12__niter_baseIPhENSt11_Niter_baseIT_E13iterator_typeES2_(i8* %__it) inlinehint {
entry:
  %__it.addr = alloca i8*, align 4
  store i8* %__it, i8** %__it.addr, align 4
  %0 = load i8** %__it.addr, align 4
  %call = call i8* @_ZNSt10_Iter_baseIPhLb0EE7_S_baseES0_(i8* %0)
  ret i8* %call
}

define linkonce_odr i8* @_ZNSt10_Iter_baseIPhLb0EE7_S_baseES0_(i8* %__it) nounwind align 2 {
entry:
  %__it.addr = alloca i8*, align 4
  store i8* %__it, i8** %__it.addr, align 4
  %0 = load i8** %__it.addr, align 4
  ret i8* %0
}

define linkonce_odr void @_ZN5boost12shared_arrayIhEC2EPh(%"class.boost::shared_array"* %this, i8* %p) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::shared_array"*, align 4
  %p.addr = alloca i8*, align 4
  %agg.tmp = alloca %"struct.boost::checked_array_deleter", align 1
  store %"class.boost::shared_array"* %this, %"class.boost::shared_array"** %this.addr, align 4
  store i8* %p, i8** %p.addr, align 4
  %this1 = load %"class.boost::shared_array"** %this.addr
  %px = getelementptr inbounds %"class.boost::shared_array"* %this1, i32 0, i32 0
  %0 = load i8** %p.addr, align 4
  store i8* %0, i8** %px, align 4
  %pn = getelementptr inbounds %"class.boost::shared_array"* %this1, i32 0, i32 1
  %1 = load i8** %p.addr, align 4
  call void @_ZN5boost6detail12shared_countC1IPhNS_21checked_array_deleterIhEEEET_T0_(%"class.boost::detail::shared_count"* %pn, i8* %1)
  ret void
}

define linkonce_odr void @_ZN5boost6detail12shared_countC1IPhNS_21checked_array_deleterIhEEEET_T0_(%"class.boost::detail::shared_count"* %this, i8* %p) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::shared_count"*, align 4
  %p.addr = alloca i8*, align 4
  %d = alloca %"struct.boost::checked_array_deleter", align 1
  store %"class.boost::detail::shared_count"* %this, %"class.boost::detail::shared_count"** %this.addr, align 4
  store i8* %p, i8** %p.addr, align 4
  %this1 = load %"class.boost::detail::shared_count"** %this.addr
  %0 = load i8** %p.addr, align 4
  call void @_ZN5boost6detail12shared_countC2IPhNS_21checked_array_deleterIhEEEET_T0_(%"class.boost::detail::shared_count"* %this1, i8* %0)
  ret void
}

define linkonce_odr void @_ZN5boost6detail12shared_countC2IPhNS_21checked_array_deleterIhEEEET_T0_(%"class.boost::detail::shared_count"* %this, i8* %p) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::shared_count"*, align 4
  %p.addr = alloca i8*, align 4
  %d = alloca %"struct.boost::checked_array_deleter", align 1
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.boost::detail::shared_count"* %this, %"class.boost::detail::shared_count"** %this.addr, align 4
  store i8* %p, i8** %p.addr, align 4
  %this1 = load %"class.boost::detail::shared_count"** %this.addr
  %pi_ = getelementptr inbounds %"class.boost::detail::shared_count"* %this1, i32 0, i32 0
  store %"class.boost::detail::sp_counted_base"* null, %"class.boost::detail::sp_counted_base"** %pi_, align 4
  %call = invoke noalias i8* @_Znwj(i32 20)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %0 = bitcast i8* %call to %"class.boost::detail::sp_counted_impl_pd"*
  %1 = load i8** %p.addr, align 4
  invoke void @_ZN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEEC1ES2_RS4_(%"class.boost::detail::sp_counted_impl_pd"* %0, i8* %1, %"struct.boost::checked_array_deleter"* %d)
          to label %invoke.cont3 unwind label %lpad2

invoke.cont3:                                     ; preds = %invoke.cont
  %2 = bitcast %"class.boost::detail::sp_counted_impl_pd"* %0 to %"class.boost::detail::sp_counted_base"*
  %pi_4 = getelementptr inbounds %"class.boost::detail::shared_count"* %this1, i32 0, i32 0
  store %"class.boost::detail::sp_counted_base"* %2, %"class.boost::detail::sp_counted_base"** %pi_4, align 4
  br label %try.cont

lpad:                                             ; preds = %entry
  %3 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  %4 = extractvalue { i8*, i32 } %3, 0
  store i8* %4, i8** %exn.slot
  %5 = extractvalue { i8*, i32 } %3, 1
  store i32 %5, i32* %ehselector.slot
  br label %catch

lpad2:                                            ; preds = %invoke.cont
  %6 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  %7 = extractvalue { i8*, i32 } %6, 0
  store i8* %7, i8** %exn.slot
  %8 = extractvalue { i8*, i32 } %6, 1
  store i32 %8, i32* %ehselector.slot
  call void @_ZdlPv(i8* %call) nounwind
  br label %catch

catch:                                            ; preds = %lpad2, %lpad
  %exn = load i8** %exn.slot
  %9 = call i8* @__cxa_begin_catch(i8* %exn) nounwind
  %10 = load i8** %p.addr, align 4
  invoke void @_ZNK5boost21checked_array_deleterIhEclEPh(%"struct.boost::checked_array_deleter"* %d, i8* %10)
          to label %invoke.cont6 unwind label %lpad5

invoke.cont6:                                     ; preds = %catch
  invoke void @__cxa_rethrow() noreturn
          to label %unreachable unwind label %lpad5

lpad5:                                            ; preds = %invoke.cont6, %catch
  %11 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %12 = extractvalue { i8*, i32 } %11, 0
  store i8* %12, i8** %exn.slot
  %13 = extractvalue { i8*, i32 } %11, 1
  store i32 %13, i32* %ehselector.slot
  invoke void @__cxa_end_catch()
          to label %invoke.cont7 unwind label %terminate.lpad

invoke.cont7:                                     ; preds = %lpad5
  br label %eh.resume

try.cont:                                         ; preds = %invoke.cont3
  ret void

eh.resume:                                        ; preds = %invoke.cont7
  %exn8 = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn8, 0
  %lpad.val9 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val9

terminate.lpad:                                   ; preds = %lpad5
  %14 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable

unreachable:                                      ; preds = %invoke.cont6
  unreachable
}

declare noalias i8* @_Znwj(i32)

define linkonce_odr void @_ZN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEEC1ES2_RS4_(%"class.boost::detail::sp_counted_impl_pd"* %this, i8* %p, %"struct.boost::checked_array_deleter"* %d) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_impl_pd"*, align 4
  %p.addr = alloca i8*, align 4
  %d.addr = alloca %"struct.boost::checked_array_deleter"*, align 4
  store %"class.boost::detail::sp_counted_impl_pd"* %this, %"class.boost::detail::sp_counted_impl_pd"** %this.addr, align 4
  store i8* %p, i8** %p.addr, align 4
  store %"struct.boost::checked_array_deleter"* %d, %"struct.boost::checked_array_deleter"** %d.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_impl_pd"** %this.addr
  %0 = load i8** %p.addr, align 4
  %1 = load %"struct.boost::checked_array_deleter"** %d.addr
  call void @_ZN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEEC2ES2_RS4_(%"class.boost::detail::sp_counted_impl_pd"* %this1, i8* %0, %"struct.boost::checked_array_deleter"* %1)
  ret void
}

declare void @_ZdlPv(i8*) nounwind

declare i8* @__cxa_begin_catch(i8*)

define linkonce_odr void @_ZNK5boost21checked_array_deleterIhEclEPh(%"struct.boost::checked_array_deleter"* %this, i8* %x) align 2 {
entry:
  %this.addr = alloca %"struct.boost::checked_array_deleter"*, align 4
  %x.addr = alloca i8*, align 4
  store %"struct.boost::checked_array_deleter"* %this, %"struct.boost::checked_array_deleter"** %this.addr, align 4
  store i8* %x, i8** %x.addr, align 4
  %this1 = load %"struct.boost::checked_array_deleter"** %this.addr
  %0 = load i8** %x.addr, align 4
  call void @_ZN5boost20checked_array_deleteIhEEvPT_(i8* %0)
  ret void
}

declare void @__cxa_rethrow()

declare void @__cxa_end_catch()

define linkonce_odr void @_ZN5boost20checked_array_deleteIhEEvPT_(i8* %x) nounwind inlinehint {
entry:
  %x.addr = alloca i8*, align 4
  store i8* %x, i8** %x.addr, align 4
  %0 = load i8** %x.addr, align 4
  %isnull = icmp eq i8* %0, null
  br i1 %isnull, label %delete.end, label %delete.notnull

delete.notnull:                                   ; preds = %entry
  call void @_ZdaPv(i8* %0) nounwind
  br label %delete.end

delete.end:                                       ; preds = %delete.notnull, %entry
  ret void
}

declare void @_ZdaPv(i8*) nounwind

define linkonce_odr void @_ZN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEEC2ES2_RS4_(%"class.boost::detail::sp_counted_impl_pd"* %this, i8* %p, %"struct.boost::checked_array_deleter"* %d) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_impl_pd"*, align 4
  %p.addr = alloca i8*, align 4
  %d.addr = alloca %"struct.boost::checked_array_deleter"*, align 4
  store %"class.boost::detail::sp_counted_impl_pd"* %this, %"class.boost::detail::sp_counted_impl_pd"** %this.addr, align 4
  store i8* %p, i8** %p.addr, align 4
  store %"struct.boost::checked_array_deleter"* %d, %"struct.boost::checked_array_deleter"** %d.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_impl_pd"** %this.addr
  %0 = bitcast %"class.boost::detail::sp_counted_impl_pd"* %this1 to %"class.boost::detail::sp_counted_base"*
  call void @_ZN5boost6detail15sp_counted_baseC2Ev(%"class.boost::detail::sp_counted_base"* %0)
  %1 = bitcast %"class.boost::detail::sp_counted_impl_pd"* %this1 to i8***
  store i8** getelementptr inbounds ([7 x i8*]* @_ZTVN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEEE, i64 0, i64 2), i8*** %1
  %ptr = getelementptr inbounds %"class.boost::detail::sp_counted_impl_pd"* %this1, i32 0, i32 1
  %2 = load i8** %p.addr, align 4
  store i8* %2, i8** %ptr, align 4
  %del = getelementptr inbounds %"class.boost::detail::sp_counted_impl_pd"* %this1, i32 0, i32 2
  %3 = load %"struct.boost::checked_array_deleter"** %d.addr, align 4
  ret void
}

define linkonce_odr void @_ZN5boost6detail15sp_counted_baseC2Ev(%"class.boost::detail::sp_counted_base"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_base"*, align 4
  store %"class.boost::detail::sp_counted_base"* %this, %"class.boost::detail::sp_counted_base"** %this.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_base"** %this.addr
  %0 = bitcast %"class.boost::detail::sp_counted_base"* %this1 to i8***
  store i8** getelementptr inbounds ([7 x i8*]* @_ZTVN5boost6detail15sp_counted_baseE, i64 0, i64 2), i8*** %0
  %use_count_ = getelementptr inbounds %"class.boost::detail::sp_counted_base"* %this1, i32 0, i32 1
  store i32 1, i32* %use_count_, align 4
  %weak_count_ = getelementptr inbounds %"class.boost::detail::sp_counted_base"* %this1, i32 0, i32 2
  store i32 1, i32* %weak_count_, align 4
  ret void
}

define linkonce_odr void @_ZN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEED1Ev(%"class.boost::detail::sp_counted_impl_pd"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_impl_pd"*, align 4
  store %"class.boost::detail::sp_counted_impl_pd"* %this, %"class.boost::detail::sp_counted_impl_pd"** %this.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_impl_pd"** %this.addr
  call void @_ZN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEED2Ev(%"class.boost::detail::sp_counted_impl_pd"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEED0Ev(%"class.boost::detail::sp_counted_impl_pd"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_impl_pd"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.boost::detail::sp_counted_impl_pd"* %this, %"class.boost::detail::sp_counted_impl_pd"** %this.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_impl_pd"** %this.addr
  invoke void @_ZN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEED1Ev(%"class.boost::detail::sp_counted_impl_pd"* %this1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %0 = bitcast %"class.boost::detail::sp_counted_impl_pd"* %this1 to i8*
  call void @_ZdlPv(i8* %0) nounwind
  ret void

lpad:                                             ; preds = %entry
  %1 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %2 = extractvalue { i8*, i32 } %1, 0
  store i8* %2, i8** %exn.slot
  %3 = extractvalue { i8*, i32 } %1, 1
  store i32 %3, i32* %ehselector.slot
  %4 = bitcast %"class.boost::detail::sp_counted_impl_pd"* %this1 to i8*
  call void @_ZdlPv(i8* %4) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val2
}

define linkonce_odr void @_ZN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEE7disposeEv(%"class.boost::detail::sp_counted_impl_pd"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_impl_pd"*, align 4
  store %"class.boost::detail::sp_counted_impl_pd"* %this, %"class.boost::detail::sp_counted_impl_pd"** %this.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_impl_pd"** %this.addr
  %del = getelementptr inbounds %"class.boost::detail::sp_counted_impl_pd"* %this1, i32 0, i32 2
  %ptr = getelementptr inbounds %"class.boost::detail::sp_counted_impl_pd"* %this1, i32 0, i32 1
  %0 = load i8** %ptr, align 4
  call void @_ZNK5boost21checked_array_deleterIhEclEPh(%"struct.boost::checked_array_deleter"* %del, i8* %0)
  ret void
}

define linkonce_odr void @_ZN5boost6detail15sp_counted_base7destroyEv(%"class.boost::detail::sp_counted_base"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_base"*, align 4
  store %"class.boost::detail::sp_counted_base"* %this, %"class.boost::detail::sp_counted_base"** %this.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_base"** %this.addr
  %isnull = icmp eq %"class.boost::detail::sp_counted_base"* %this1, null
  br i1 %isnull, label %delete.end, label %delete.notnull

delete.notnull:                                   ; preds = %entry
  %0 = bitcast %"class.boost::detail::sp_counted_base"* %this1 to void (%"class.boost::detail::sp_counted_base"*)***
  %vtable = load void (%"class.boost::detail::sp_counted_base"*)*** %0
  %vfn = getelementptr inbounds void (%"class.boost::detail::sp_counted_base"*)** %vtable, i64 1
  %1 = load void (%"class.boost::detail::sp_counted_base"*)** %vfn
  call void %1(%"class.boost::detail::sp_counted_base"* %this1)
  br label %delete.end

delete.end:                                       ; preds = %delete.notnull, %entry
  ret void
}

define linkonce_odr i8* @_ZN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEE11get_deleterERKSt9type_info(%"class.boost::detail::sp_counted_impl_pd"* %this, %"class.std::type_info"* %ti) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_impl_pd"*, align 4
  %ti.addr = alloca %"class.std::type_info"*, align 4
  store %"class.boost::detail::sp_counted_impl_pd"* %this, %"class.boost::detail::sp_counted_impl_pd"** %this.addr, align 4
  store %"class.std::type_info"* %ti, %"class.std::type_info"** %ti.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_impl_pd"** %this.addr
  %0 = load %"class.std::type_info"** %ti.addr, align 4
  %call = call zeroext i1 @_ZNKSt9type_infoeqERKS_(%"class.std::type_info"* %0, %"class.std::type_info"* bitcast ({ i8*, i8* }* @_ZTIN5boost21checked_array_deleterIhEE to %"class.std::type_info"*))
  br i1 %call, label %cond.true, label %cond.false

cond.true:                                        ; preds = %entry
  %del = getelementptr inbounds %"class.boost::detail::sp_counted_impl_pd"* %this1, i32 0, i32 2
  %1 = bitcast %"struct.boost::checked_array_deleter"* %del to i8*
  br label %cond.end

cond.false:                                       ; preds = %entry
  br label %cond.end

cond.end:                                         ; preds = %cond.false, %cond.true
  %cond = phi i8* [ %1, %cond.true ], [ null, %cond.false ]
  ret i8* %cond
}

define linkonce_odr zeroext i1 @_ZNKSt9type_infoeqERKS_(%"class.std::type_info"* %this, %"class.std::type_info"* %__arg) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::type_info"*, align 4
  %__arg.addr = alloca %"class.std::type_info"*, align 4
  store %"class.std::type_info"* %this, %"class.std::type_info"** %this.addr, align 4
  store %"class.std::type_info"* %__arg, %"class.std::type_info"** %__arg.addr, align 4
  %this1 = load %"class.std::type_info"** %this.addr
  %__name = getelementptr inbounds %"class.std::type_info"* %this1, i32 0, i32 1
  %0 = load i8** %__name, align 4
  %1 = load %"class.std::type_info"** %__arg.addr, align 4
  %__name2 = getelementptr inbounds %"class.std::type_info"* %1, i32 0, i32 1
  %2 = load i8** %__name2, align 4
  %cmp = icmp eq i8* %0, %2
  br i1 %cmp, label %lor.end, label %lor.rhs

lor.rhs:                                          ; preds = %entry
  %__name3 = getelementptr inbounds %"class.std::type_info"* %this1, i32 0, i32 1
  %3 = load i8** %__name3, align 4
  %arrayidx = getelementptr inbounds i8* %3, i32 0
  %4 = load i8* %arrayidx, align 1
  %conv = sext i8 %4 to i32
  %cmp4 = icmp ne i32 %conv, 42
  br i1 %cmp4, label %land.rhs, label %land.end

land.rhs:                                         ; preds = %lor.rhs
  %__name5 = getelementptr inbounds %"class.std::type_info"* %this1, i32 0, i32 1
  %5 = load i8** %__name5, align 4
  %6 = load %"class.std::type_info"** %__arg.addr, align 4
  %__name6 = getelementptr inbounds %"class.std::type_info"* %6, i32 0, i32 1
  %7 = load i8** %__name6, align 4
  %call = call i32 @strcmp(i8* %5, i8* %7) nounwind
  %cmp7 = icmp eq i32 %call, 0
  br label %land.end

land.end:                                         ; preds = %land.rhs, %lor.rhs
  %8 = phi i1 [ false, %lor.rhs ], [ %cmp7, %land.rhs ]
  br label %lor.end

lor.end:                                          ; preds = %land.end, %entry
  %9 = phi i1 [ true, %entry ], [ %8, %land.end ]
  ret i1 %9
}

declare i32 @strcmp(i8*, i8*) nounwind

define linkonce_odr void @_ZN5boost6detail18sp_counted_impl_pdIPhNS_21checked_array_deleterIhEEED2Ev(%"class.boost::detail::sp_counted_impl_pd"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_impl_pd"*, align 4
  store %"class.boost::detail::sp_counted_impl_pd"* %this, %"class.boost::detail::sp_counted_impl_pd"** %this.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_impl_pd"** %this.addr
  %0 = bitcast %"class.boost::detail::sp_counted_impl_pd"* %this1 to %"class.boost::detail::sp_counted_base"*
  call void @_ZN5boost6detail15sp_counted_baseD2Ev(%"class.boost::detail::sp_counted_base"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost6detail15sp_counted_baseD2Ev(%"class.boost::detail::sp_counted_base"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_base"*, align 4
  store %"class.boost::detail::sp_counted_base"* %this, %"class.boost::detail::sp_counted_base"** %this.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_base"** %this.addr
  ret void
}

define linkonce_odr void @_ZN5boost6detail15sp_counted_baseD1Ev(%"class.boost::detail::sp_counted_base"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_base"*, align 4
  store %"class.boost::detail::sp_counted_base"* %this, %"class.boost::detail::sp_counted_base"** %this.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_base"** %this.addr
  call void @_ZN5boost6detail15sp_counted_baseD2Ev(%"class.boost::detail::sp_counted_base"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost6detail15sp_counted_baseD0Ev(%"class.boost::detail::sp_counted_base"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_base"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.boost::detail::sp_counted_base"* %this, %"class.boost::detail::sp_counted_base"** %this.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_base"** %this.addr
  invoke void @_ZN5boost6detail15sp_counted_baseD1Ev(%"class.boost::detail::sp_counted_base"* %this1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %0 = bitcast %"class.boost::detail::sp_counted_base"* %this1 to i8*
  call void @_ZdlPv(i8* %0) nounwind
  ret void

lpad:                                             ; preds = %entry
  %1 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %2 = extractvalue { i8*, i32 } %1, 0
  store i8* %2, i8** %exn.slot
  %3 = extractvalue { i8*, i32 } %1, 1
  store i32 %3, i32* %ehselector.slot
  %4 = bitcast %"class.boost::detail::sp_counted_base"* %this1 to i8*
  call void @_ZdlPv(i8* %4) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val2
}

declare void @__cxa_pure_virtual()

define linkonce_odr void @_ZN5boost5queueIjSt5dequeIjSaIjEEEC1Ev(%"class.boost::queue"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::queue"*, align 4
  store %"class.boost::queue"* %this, %"class.boost::queue"** %this.addr, align 4
  %this1 = load %"class.boost::queue"** %this.addr
  call void @_ZN5boost5queueIjSt5dequeIjSaIjEEEC2Ev(%"class.boost::queue"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost20breadth_first_searchINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_5queueIjSt5dequeIjSaIjEEEENS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEESE_INS_16on_non_tree_edgeEEEEENS_17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapIS4_jEEEEEEvRKT_NS_12graph_traitsISP_E17vertex_descriptorERT0_T1_T2_(%"class.boost::adjacency_list"* %g, i32 %s, %"class.boost::queue"* %Q, %"class.boost::bfs_visitor"* %vis, %"struct.boost::two_bit_color_map"* %color) {
entry:
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %s.addr = alloca i32, align 4
  %Q.addr = alloca %"class.boost::queue"*, align 4
  %sources = alloca [1 x i32], align 4
  %agg.tmp = alloca %"class.boost::bfs_visitor", align 4
  %agg.tmp2 = alloca %"struct.boost::two_bit_color_map", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store i32 %s, i32* %s.addr, align 4
  store %"class.boost::queue"* %Q, %"class.boost::queue"** %Q.addr, align 4
  %arrayinit.begin = getelementptr inbounds [1 x i32]* %sources, i32 0, i32 0
  %0 = load i32* %s.addr, align 4
  store i32 %0, i32* %arrayinit.begin
  %1 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %arraydecay = getelementptr inbounds [1 x i32]* %sources, i32 0, i32 0
  %arraydecay1 = getelementptr inbounds [1 x i32]* %sources, i32 0, i32 0
  %add.ptr = getelementptr inbounds i32* %arraydecay1, i32 1
  %2 = load %"class.boost::queue"** %Q.addr, align 4
  call void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEEC1ERKS8_(%"class.boost::bfs_visitor"* %agg.tmp, %"class.boost::bfs_visitor"* %vis)
  invoke void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEC1ERKS4_(%"struct.boost::two_bit_color_map"* %agg.tmp2, %"struct.boost::two_bit_color_map"* %color)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  invoke void @_ZN5boost20breadth_first_searchINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEEPjNS_5queueIjSt5dequeIjSaIjEEEENS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEESF_INS_16on_non_tree_edgeEEEEENS_17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapIS4_jEEEEEEvRKT_T0_ST_RT1_T2_T3_(%"class.boost::adjacency_list"* %1, i32* %arraydecay, i32* %add.ptr, %"class.boost::queue"* %2, %"class.boost::bfs_visitor"* %agg.tmp, %"struct.boost::two_bit_color_map"* %agg.tmp2)
          to label %invoke.cont4 unwind label %lpad3

invoke.cont4:                                     ; preds = %invoke.cont
  invoke void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED1Ev(%"struct.boost::two_bit_color_map"* %agg.tmp2)
          to label %invoke.cont5 unwind label %lpad

invoke.cont5:                                     ; preds = %invoke.cont4
  call void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEED1Ev(%"class.boost::bfs_visitor"* %agg.tmp)
  ret void

lpad:                                             ; preds = %invoke.cont4, %entry
  %3 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %4 = extractvalue { i8*, i32 } %3, 0
  store i8* %4, i8** %exn.slot
  %5 = extractvalue { i8*, i32 } %3, 1
  store i32 %5, i32* %ehselector.slot
  br label %ehcleanup

lpad3:                                            ; preds = %invoke.cont
  %6 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %7 = extractvalue { i8*, i32 } %6, 0
  store i8* %7, i8** %exn.slot
  %8 = extractvalue { i8*, i32 } %6, 1
  store i32 %8, i32* %ehselector.slot
  invoke void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED1Ev(%"struct.boost::two_bit_color_map"* %agg.tmp2)
          to label %invoke.cont6 unwind label %terminate.lpad

invoke.cont6:                                     ; preds = %lpad3
  br label %ehcleanup

ehcleanup:                                        ; preds = %invoke.cont6, %lpad
  invoke void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEED1Ev(%"class.boost::bfs_visitor"* %agg.tmp)
          to label %invoke.cont7 unwind label %terminate.lpad

invoke.cont7:                                     ; preds = %ehcleanup
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont7
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val8 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val8

terminate.lpad:                                   ; preds = %ehcleanup, %lpad3
  %9 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost12choose_paramINS_17reference_wrapperINS_5queueIjSt5dequeIjSaIjEEEEEEEET_RKNS_15param_not_foundERKS8_(%"class.boost::reference_wrapper"* noalias sret %agg.result, %"struct.boost::param_not_found"*, %"class.boost::reference_wrapper"* %d) nounwind {
entry:
  %.addr = alloca %"struct.boost::param_not_found"*, align 4
  %d.addr = alloca %"class.boost::reference_wrapper"*, align 4
  store %"struct.boost::param_not_found"* %0, %"struct.boost::param_not_found"** %.addr, align 4
  store %"class.boost::reference_wrapper"* %d, %"class.boost::reference_wrapper"** %d.addr, align 4
  %1 = load %"class.boost::reference_wrapper"** %d.addr, align 4
  %2 = bitcast %"class.boost::reference_wrapper"* %agg.result to i8*
  %3 = bitcast %"class.boost::reference_wrapper"* %1 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 4, i32 4, i1 false)
  ret void
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost9get_paramINS_14buffer_param_tENS_16bgl_named_paramsINS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES5_INS_16on_non_tree_edgeEEEEENS_15graph_visitor_tENS_11no_propertyEEEEERKNS_22lookup_named_param_defIT_T0_NS_15param_not_foundEE4typeERKSH_SG_(%"struct.boost::bgl_named_params.17"* %p) inlinehint {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params.17"*, align 4
  %0 = alloca %"struct.boost::buffer_param_t", align 1
  %ref.tmp = alloca %"struct.boost::param_not_found", align 1
  store %"struct.boost::bgl_named_params.17"* %p, %"struct.boost::bgl_named_params.17"** %p.addr, align 4
  %1 = load %"struct.boost::bgl_named_params.17"** %p.addr, align 4
  %call = call %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_14buffer_param_tENS_16bgl_named_paramsINS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES5_INS_16on_non_tree_edgeEEEEENS_15graph_visitor_tENS_11no_propertyEEENS_15param_not_foundEE3getERKSE_RKSF_(%"struct.boost::bgl_named_params.17"* %1, %"struct.boost::param_not_found"* %ref.tmp)
  ret %"struct.boost::param_not_found"* %call
}

define linkonce_odr void @_ZN5boost3refINS_5queueIjSt5dequeIjSaIjEEEEEEKNS_17reference_wrapperIT_EERS7_(%"class.boost::reference_wrapper"* noalias sret %agg.result, %"class.boost::queue"* %t) inlinehint {
entry:
  %t.addr = alloca %"class.boost::queue"*, align 4
  store %"class.boost::queue"* %t, %"class.boost::queue"** %t.addr, align 4
  %0 = load %"class.boost::queue"** %t.addr, align 4
  call void @_ZN5boost17reference_wrapperINS_5queueIjSt5dequeIjSaIjEEEEEC1ERS5_(%"class.boost::reference_wrapper"* %agg.result, %"class.boost::queue"* %0)
  ret void
}

define linkonce_odr %"class.boost::queue"* @_ZNK5boost17reference_wrapperINS_5queueIjSt5dequeIjSaIjEEEEE3getEv(%"class.boost::reference_wrapper"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::reference_wrapper"*, align 4
  store %"class.boost::reference_wrapper"* %this, %"class.boost::reference_wrapper"** %this.addr, align 4
  %this1 = load %"class.boost::reference_wrapper"** %this.addr
  %t_ = getelementptr inbounds %"class.boost::reference_wrapper"* %this1, i32 0, i32 0
  %0 = load %"class.boost::queue"** %t_, align 4
  ret %"class.boost::queue"* %0
}

define linkonce_odr void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEC1ERKS4_(%"struct.boost::two_bit_color_map"* %this, %"struct.boost::two_bit_color_map"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::two_bit_color_map"*, align 4
  %.addr = alloca %"struct.boost::two_bit_color_map"*, align 4
  store %"struct.boost::two_bit_color_map"* %this, %"struct.boost::two_bit_color_map"** %this.addr, align 4
  store %"struct.boost::two_bit_color_map"* %0, %"struct.boost::two_bit_color_map"** %.addr, align 4
  %this1 = load %"struct.boost::two_bit_color_map"** %this.addr
  %1 = load %"struct.boost::two_bit_color_map"** %.addr
  call void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEC2ERKS4_(%"struct.boost::two_bit_color_map"* %this1, %"struct.boost::two_bit_color_map"* %1)
  ret void
}

define linkonce_odr void @_ZN5boost5queueIjSt5dequeIjSaIjEEED1Ev(%"class.boost::queue"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::queue"*, align 4
  store %"class.boost::queue"* %this, %"class.boost::queue"** %this.addr, align 4
  %this1 = load %"class.boost::queue"** %this.addr
  call void @_ZN5boost5queueIjSt5dequeIjSaIjEEED2Ev(%"class.boost::queue"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost5queueIjSt5dequeIjSaIjEEED2Ev(%"class.boost::queue"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::queue"*, align 4
  store %"class.boost::queue"* %this, %"class.boost::queue"** %this.addr, align 4
  %this1 = load %"class.boost::queue"** %this.addr
  %c = getelementptr inbounds %"class.boost::queue"* %this1, i32 0, i32 0
  call void @_ZNSt5dequeIjSaIjEED1Ev(%"class.std::deque"* %c)
  ret void
}

define linkonce_odr void @_ZNSt5dequeIjSaIjEED1Ev(%"class.std::deque"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::deque"*, align 4
  store %"class.std::deque"* %this, %"class.std::deque"** %this.addr, align 4
  %this1 = load %"class.std::deque"** %this.addr
  call void @_ZNSt5dequeIjSaIjEED2Ev(%"class.std::deque"* %this1)
  ret void
}

define linkonce_odr void @_ZNSt5dequeIjSaIjEED2Ev(%"class.std::deque"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::deque"*, align 4
  %agg.tmp = alloca %"struct.std::_Deque_iterator", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %agg.tmp2 = alloca %"struct.std::_Deque_iterator", align 4
  store %"class.std::deque"* %this, %"class.std::deque"** %this.addr, align 4
  %this1 = load %"class.std::deque"** %this.addr
  invoke void @_ZNSt5dequeIjSaIjEE5beginEv(%"struct.std::_Deque_iterator"* sret %agg.tmp, %"class.std::deque"* %this1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  invoke void @_ZNSt5dequeIjSaIjEE3endEv(%"struct.std::_Deque_iterator"* sret %agg.tmp2, %"class.std::deque"* %this1)
          to label %invoke.cont3 unwind label %lpad

invoke.cont3:                                     ; preds = %invoke.cont
  %0 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %call = invoke %"class.std::allocator.5"* @_ZNSt11_Deque_baseIjSaIjEE19_M_get_Tp_allocatorEv(%"class.std::_Deque_base"* %0)
          to label %invoke.cont4 unwind label %lpad

invoke.cont4:                                     ; preds = %invoke.cont3
  invoke void @_ZNSt5dequeIjSaIjEE15_M_destroy_dataESt15_Deque_iteratorIjRjPjES5_RKS0_(%"class.std::deque"* %this1, %"struct.std::_Deque_iterator"* %agg.tmp, %"struct.std::_Deque_iterator"* %agg.tmp2, %"class.std::allocator.5"* %call)
          to label %invoke.cont5 unwind label %lpad

invoke.cont5:                                     ; preds = %invoke.cont4
  %1 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  call void @_ZNSt11_Deque_baseIjSaIjEED2Ev(%"class.std::_Deque_base"* %1)
  ret void

lpad:                                             ; preds = %invoke.cont4, %invoke.cont3, %invoke.cont, %entry
  %2 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %3 = extractvalue { i8*, i32 } %2, 0
  store i8* %3, i8** %exn.slot
  %4 = extractvalue { i8*, i32 } %2, 1
  store i32 %4, i32* %ehselector.slot
  %5 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  invoke void @_ZNSt11_Deque_baseIjSaIjEED2Ev(%"class.std::_Deque_base"* %5)
          to label %invoke.cont6 unwind label %terminate.lpad

invoke.cont6:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont6
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val7 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val7

terminate.lpad:                                   ; preds = %lpad
  %6 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZNSt5dequeIjSaIjEE15_M_destroy_dataESt15_Deque_iteratorIjRjPjES5_RKS0_(%"class.std::deque"* %this, %"struct.std::_Deque_iterator"* %__first, %"struct.std::_Deque_iterator"* %__last, %"class.std::allocator.5"*) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::deque"*, align 4
  %.addr = alloca %"class.std::allocator.5"*, align 4
  store %"class.std::deque"* %this, %"class.std::deque"** %this.addr, align 4
  store %"class.std::allocator.5"* %0, %"class.std::allocator.5"** %.addr, align 4
  %this1 = load %"class.std::deque"** %this.addr
  ret void
}

define linkonce_odr void @_ZNSt5dequeIjSaIjEE5beginEv(%"struct.std::_Deque_iterator"* noalias sret %agg.result, %"class.std::deque"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::deque"*, align 4
  store %"class.std::deque"* %this, %"class.std::deque"** %this.addr, align 4
  %this1 = load %"class.std::deque"** %this.addr
  %0 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl = getelementptr inbounds %"class.std::_Deque_base"* %0, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl, i32 0, i32 2
  call void @_ZNSt15_Deque_iteratorIjRjPjEC1ERKS2_(%"struct.std::_Deque_iterator"* %agg.result, %"struct.std::_Deque_iterator"* %_M_start)
  ret void
}

define linkonce_odr void @_ZNSt5dequeIjSaIjEE3endEv(%"struct.std::_Deque_iterator"* noalias sret %agg.result, %"class.std::deque"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::deque"*, align 4
  store %"class.std::deque"* %this, %"class.std::deque"** %this.addr, align 4
  %this1 = load %"class.std::deque"** %this.addr
  %0 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl = getelementptr inbounds %"class.std::_Deque_base"* %0, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl, i32 0, i32 3
  call void @_ZNSt15_Deque_iteratorIjRjPjEC1ERKS2_(%"struct.std::_Deque_iterator"* %agg.result, %"struct.std::_Deque_iterator"* %_M_finish)
  ret void
}

define linkonce_odr %"class.std::allocator.5"* @_ZNSt11_Deque_baseIjSaIjEE19_M_get_Tp_allocatorEv(%"class.std::_Deque_base"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::_Deque_base"*, align 4
  store %"class.std::_Deque_base"* %this, %"class.std::_Deque_base"** %this.addr, align 4
  %this1 = load %"class.std::_Deque_base"** %this.addr
  %_M_impl = getelementptr inbounds %"class.std::_Deque_base"* %this1, i32 0, i32 0
  %0 = bitcast %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl to %"class.std::allocator.5"*
  ret %"class.std::allocator.5"* %0
}

define linkonce_odr void @_ZNSt11_Deque_baseIjSaIjEED2Ev(%"class.std::_Deque_base"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::_Deque_base"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::_Deque_base"* %this, %"class.std::_Deque_base"** %this.addr, align 4
  %this1 = load %"class.std::_Deque_base"** %this.addr
  %_M_impl = getelementptr inbounds %"class.std::_Deque_base"* %this1, i32 0, i32 0
  %_M_map = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl, i32 0, i32 0
  %0 = load i32*** %_M_map, align 4
  %tobool = icmp ne i32** %0, null
  br i1 %tobool, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %_M_impl2 = getelementptr inbounds %"class.std::_Deque_base"* %this1, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl2, i32 0, i32 2
  %_M_node = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_start, i32 0, i32 3
  %1 = load i32*** %_M_node, align 4
  %_M_impl3 = getelementptr inbounds %"class.std::_Deque_base"* %this1, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl3, i32 0, i32 3
  %_M_node4 = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_finish, i32 0, i32 3
  %2 = load i32*** %_M_node4, align 4
  %add.ptr = getelementptr inbounds i32** %2, i32 1
  invoke void @_ZNSt11_Deque_baseIjSaIjEE16_M_destroy_nodesEPPjS3_(%"class.std::_Deque_base"* %this1, i32** %1, i32** %add.ptr)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %if.then
  %_M_impl5 = getelementptr inbounds %"class.std::_Deque_base"* %this1, i32 0, i32 0
  %_M_map6 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl5, i32 0, i32 0
  %3 = load i32*** %_M_map6, align 4
  %_M_impl7 = getelementptr inbounds %"class.std::_Deque_base"* %this1, i32 0, i32 0
  %_M_map_size = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl7, i32 0, i32 1
  %4 = load i32* %_M_map_size, align 4
  invoke void @_ZNSt11_Deque_baseIjSaIjEE17_M_deallocate_mapEPPjj(%"class.std::_Deque_base"* %this1, i32** %3, i32 %4)
          to label %invoke.cont8 unwind label %lpad

invoke.cont8:                                     ; preds = %invoke.cont
  br label %if.end

lpad:                                             ; preds = %invoke.cont, %if.then
  %5 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %6 = extractvalue { i8*, i32 } %5, 0
  store i8* %6, i8** %exn.slot
  %7 = extractvalue { i8*, i32 } %5, 1
  store i32 %7, i32* %ehselector.slot
  %_M_impl10 = getelementptr inbounds %"class.std::_Deque_base"* %this1, i32 0, i32 0
  call void @_ZNSt11_Deque_baseIjSaIjEE11_Deque_implD1Ev(%"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl10) nounwind
  br label %eh.resume

if.end:                                           ; preds = %invoke.cont8, %entry
  %_M_impl9 = getelementptr inbounds %"class.std::_Deque_base"* %this1, i32 0, i32 0
  call void @_ZNSt11_Deque_baseIjSaIjEE11_Deque_implD1Ev(%"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl9) nounwind
  ret void

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val11 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val11
}

define linkonce_odr void @_ZNSt11_Deque_baseIjSaIjEE16_M_destroy_nodesEPPjS3_(%"class.std::_Deque_base"* %this, i32** %__nstart, i32** %__nfinish) align 2 {
entry:
  %this.addr = alloca %"class.std::_Deque_base"*, align 4
  %__nstart.addr = alloca i32**, align 4
  %__nfinish.addr = alloca i32**, align 4
  %__n = alloca i32**, align 4
  store %"class.std::_Deque_base"* %this, %"class.std::_Deque_base"** %this.addr, align 4
  store i32** %__nstart, i32*** %__nstart.addr, align 4
  store i32** %__nfinish, i32*** %__nfinish.addr, align 4
  %this1 = load %"class.std::_Deque_base"** %this.addr
  %0 = load i32*** %__nstart.addr, align 4
  store i32** %0, i32*** %__n, align 4
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %1 = load i32*** %__n, align 4
  %2 = load i32*** %__nfinish.addr, align 4
  %cmp = icmp ult i32** %1, %2
  br i1 %cmp, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %3 = load i32*** %__n, align 4
  %4 = load i32** %3, align 4
  call void @_ZNSt11_Deque_baseIjSaIjEE18_M_deallocate_nodeEPj(%"class.std::_Deque_base"* %this1, i32* %4)
  br label %for.inc

for.inc:                                          ; preds = %for.body
  %5 = load i32*** %__n, align 4
  %incdec.ptr = getelementptr inbounds i32** %5, i32 1
  store i32** %incdec.ptr, i32*** %__n, align 4
  br label %for.cond

for.end:                                          ; preds = %for.cond
  ret void
}

define linkonce_odr void @_ZNSt11_Deque_baseIjSaIjEE17_M_deallocate_mapEPPjj(%"class.std::_Deque_base"* %this, i32** %__p, i32 %__n) align 2 {
entry:
  %this.addr = alloca %"class.std::_Deque_base"*, align 4
  %__p.addr = alloca i32**, align 4
  %__n.addr = alloca i32, align 4
  %temp.lvalue = alloca %"class.std::allocator.28", align 1
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::_Deque_base"* %this, %"class.std::_Deque_base"** %this.addr, align 4
  store i32** %__p, i32*** %__p.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  %this1 = load %"class.std::_Deque_base"** %this.addr
  call void @_ZNKSt11_Deque_baseIjSaIjEE20_M_get_map_allocatorEv(%"class.std::allocator.28"* sret %temp.lvalue, %"class.std::_Deque_base"* %this1)
  %0 = bitcast %"class.std::allocator.28"* %temp.lvalue to %"class.__gnu_cxx::new_allocator.29"*
  %1 = load i32*** %__p.addr, align 4
  %2 = load i32* %__n.addr, align 4
  invoke void @_ZN9__gnu_cxx13new_allocatorIPjE10deallocateEPS1_j(%"class.__gnu_cxx::new_allocator.29"* %0, i32** %1, i32 %2)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  call void @_ZNSaIPjED1Ev(%"class.std::allocator.28"* %temp.lvalue) nounwind
  ret void

lpad:                                             ; preds = %entry
  %3 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %4 = extractvalue { i8*, i32 } %3, 0
  store i8* %4, i8** %exn.slot
  %5 = extractvalue { i8*, i32 } %3, 1
  store i32 %5, i32* %ehselector.slot
  call void @_ZNSaIPjED1Ev(%"class.std::allocator.28"* %temp.lvalue) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val2
}

define linkonce_odr void @_ZNSt11_Deque_baseIjSaIjEE11_Deque_implD1Ev(%"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"*, align 4
  store %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %this, %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"** %this.addr
  call void @_ZNSt11_Deque_baseIjSaIjEE11_Deque_implD2Ev(%"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %this1) nounwind
  ret void
}

define linkonce_odr void @_ZNSt11_Deque_baseIjSaIjEE11_Deque_implD2Ev(%"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"*, align 4
  store %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %this, %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"** %this.addr
  %0 = bitcast %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %this1 to %"class.std::allocator.5"*
  call void @_ZNSaIjED2Ev(%"class.std::allocator.5"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZNSaIjED2Ev(%"class.std::allocator.5"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.5"*, align 4
  store %"class.std::allocator.5"* %this, %"class.std::allocator.5"** %this.addr, align 4
  %this1 = load %"class.std::allocator.5"** %this.addr
  %0 = bitcast %"class.std::allocator.5"* %this1 to %"class.__gnu_cxx::new_allocator.6"*
  call void @_ZN9__gnu_cxx13new_allocatorIjED2Ev(%"class.__gnu_cxx::new_allocator.6"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIjED2Ev(%"class.__gnu_cxx::new_allocator.6"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.6"*, align 4
  store %"class.__gnu_cxx::new_allocator.6"* %this, %"class.__gnu_cxx::new_allocator.6"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.6"** %this.addr
  ret void
}

define linkonce_odr void @_ZNKSt11_Deque_baseIjSaIjEE20_M_get_map_allocatorEv(%"class.std::allocator.28"* noalias sret %agg.result, %"class.std::_Deque_base"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::_Deque_base"*, align 4
  store %"class.std::_Deque_base"* %this, %"class.std::_Deque_base"** %this.addr, align 4
  %this1 = load %"class.std::_Deque_base"** %this.addr
  %call = call %"class.std::allocator.5"* @_ZNKSt11_Deque_baseIjSaIjEE19_M_get_Tp_allocatorEv(%"class.std::_Deque_base"* %this1)
  call void @_ZNSaIPjEC1IjEERKSaIT_E(%"class.std::allocator.28"* %agg.result, %"class.std::allocator.5"* %call) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIPjE10deallocateEPS1_j(%"class.__gnu_cxx::new_allocator.29"* %this, i32** %__p, i32) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.29"*, align 4
  %__p.addr = alloca i32**, align 4
  %.addr = alloca i32, align 4
  store %"class.__gnu_cxx::new_allocator.29"* %this, %"class.__gnu_cxx::new_allocator.29"** %this.addr, align 4
  store i32** %__p, i32*** %__p.addr, align 4
  store i32 %0, i32* %.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.29"** %this.addr
  %1 = load i32*** %__p.addr, align 4
  %2 = bitcast i32** %1 to i8*
  call void @_ZdlPv(i8* %2) nounwind
  ret void
}

define linkonce_odr void @_ZNSaIPjED1Ev(%"class.std::allocator.28"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.28"*, align 4
  store %"class.std::allocator.28"* %this, %"class.std::allocator.28"** %this.addr, align 4
  %this1 = load %"class.std::allocator.28"** %this.addr
  call void @_ZNSaIPjED2Ev(%"class.std::allocator.28"* %this1) nounwind
  ret void
}

define linkonce_odr void @_ZNSaIPjED2Ev(%"class.std::allocator.28"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.28"*, align 4
  store %"class.std::allocator.28"* %this, %"class.std::allocator.28"** %this.addr, align 4
  %this1 = load %"class.std::allocator.28"** %this.addr
  %0 = bitcast %"class.std::allocator.28"* %this1 to %"class.__gnu_cxx::new_allocator.29"*
  call void @_ZN9__gnu_cxx13new_allocatorIPjED2Ev(%"class.__gnu_cxx::new_allocator.29"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIPjED2Ev(%"class.__gnu_cxx::new_allocator.29"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.29"*, align 4
  store %"class.__gnu_cxx::new_allocator.29"* %this, %"class.__gnu_cxx::new_allocator.29"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.29"** %this.addr
  ret void
}

define linkonce_odr void @_ZNSaIPjEC1IjEERKSaIT_E(%"class.std::allocator.28"* %this, %"class.std::allocator.5"*) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.28"*, align 4
  %.addr = alloca %"class.std::allocator.5"*, align 4
  store %"class.std::allocator.28"* %this, %"class.std::allocator.28"** %this.addr, align 4
  store %"class.std::allocator.5"* %0, %"class.std::allocator.5"** %.addr, align 4
  %this1 = load %"class.std::allocator.28"** %this.addr
  %1 = load %"class.std::allocator.5"** %.addr
  call void @_ZNSaIPjEC2IjEERKSaIT_E(%"class.std::allocator.28"* %this1, %"class.std::allocator.5"* %1) nounwind
  ret void
}

define linkonce_odr %"class.std::allocator.5"* @_ZNKSt11_Deque_baseIjSaIjEE19_M_get_Tp_allocatorEv(%"class.std::_Deque_base"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::_Deque_base"*, align 4
  store %"class.std::_Deque_base"* %this, %"class.std::_Deque_base"** %this.addr, align 4
  %this1 = load %"class.std::_Deque_base"** %this.addr
  %_M_impl = getelementptr inbounds %"class.std::_Deque_base"* %this1, i32 0, i32 0
  %0 = bitcast %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl to %"class.std::allocator.5"*
  ret %"class.std::allocator.5"* %0
}

define linkonce_odr void @_ZNSaIPjEC2IjEERKSaIT_E(%"class.std::allocator.28"* %this, %"class.std::allocator.5"*) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.28"*, align 4
  %.addr = alloca %"class.std::allocator.5"*, align 4
  store %"class.std::allocator.28"* %this, %"class.std::allocator.28"** %this.addr, align 4
  store %"class.std::allocator.5"* %0, %"class.std::allocator.5"** %.addr, align 4
  %this1 = load %"class.std::allocator.28"** %this.addr
  %1 = bitcast %"class.std::allocator.28"* %this1 to %"class.__gnu_cxx::new_allocator.29"*
  call void @_ZN9__gnu_cxx13new_allocatorIPjEC2Ev(%"class.__gnu_cxx::new_allocator.29"* %1) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIPjEC2Ev(%"class.__gnu_cxx::new_allocator.29"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.29"*, align 4
  store %"class.__gnu_cxx::new_allocator.29"* %this, %"class.__gnu_cxx::new_allocator.29"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.29"** %this.addr
  ret void
}

define linkonce_odr void @_ZNSt11_Deque_baseIjSaIjEE18_M_deallocate_nodeEPj(%"class.std::_Deque_base"* %this, i32* %__p) align 2 {
entry:
  %this.addr = alloca %"class.std::_Deque_base"*, align 4
  %__p.addr = alloca i32*, align 4
  store %"class.std::_Deque_base"* %this, %"class.std::_Deque_base"** %this.addr, align 4
  store i32* %__p, i32** %__p.addr, align 4
  %this1 = load %"class.std::_Deque_base"** %this.addr
  %_M_impl = getelementptr inbounds %"class.std::_Deque_base"* %this1, i32 0, i32 0
  %0 = bitcast %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl to %"class.std::allocator.5"*
  %1 = bitcast %"class.std::allocator.5"* %0 to %"class.__gnu_cxx::new_allocator.6"*
  %2 = load i32** %__p.addr, align 4
  %call = call i32 @_ZSt16__deque_buf_sizej(i32 4)
  call void @_ZN9__gnu_cxx13new_allocatorIjE10deallocateEPjj(%"class.__gnu_cxx::new_allocator.6"* %1, i32* %2, i32 %call)
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIjE10deallocateEPjj(%"class.__gnu_cxx::new_allocator.6"* %this, i32* %__p, i32) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.6"*, align 4
  %__p.addr = alloca i32*, align 4
  %.addr = alloca i32, align 4
  store %"class.__gnu_cxx::new_allocator.6"* %this, %"class.__gnu_cxx::new_allocator.6"** %this.addr, align 4
  store i32* %__p, i32** %__p.addr, align 4
  store i32 %0, i32* %.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.6"** %this.addr
  %1 = load i32** %__p.addr, align 4
  %2 = bitcast i32* %1 to i8*
  call void @_ZdlPv(i8* %2) nounwind
  ret void
}

define linkonce_odr i32 @_ZSt16__deque_buf_sizej(i32 %__size) nounwind inlinehint {
entry:
  %__size.addr = alloca i32, align 4
  store i32 %__size, i32* %__size.addr, align 4
  %0 = load i32* %__size.addr, align 4
  %cmp = icmp ult i32 %0, 512
  br i1 %cmp, label %cond.true, label %cond.false

cond.true:                                        ; preds = %entry
  %1 = load i32* %__size.addr, align 4
  %div = udiv i32 512, %1
  br label %cond.end

cond.false:                                       ; preds = %entry
  br label %cond.end

cond.end:                                         ; preds = %cond.false, %cond.true
  %cond = phi i32 [ %div, %cond.true ], [ 1, %cond.false ]
  ret i32 %cond
}

define linkonce_odr void @_ZNSt15_Deque_iteratorIjRjPjEC1ERKS2_(%"struct.std::_Deque_iterator"* %this, %"struct.std::_Deque_iterator"* %__x) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_Deque_iterator"*, align 4
  %__x.addr = alloca %"struct.std::_Deque_iterator"*, align 4
  store %"struct.std::_Deque_iterator"* %this, %"struct.std::_Deque_iterator"** %this.addr, align 4
  store %"struct.std::_Deque_iterator"* %__x, %"struct.std::_Deque_iterator"** %__x.addr, align 4
  %this1 = load %"struct.std::_Deque_iterator"** %this.addr
  %0 = load %"struct.std::_Deque_iterator"** %__x.addr
  call void @_ZNSt15_Deque_iteratorIjRjPjEC2ERKS2_(%"struct.std::_Deque_iterator"* %this1, %"struct.std::_Deque_iterator"* %0)
  ret void
}

define linkonce_odr void @_ZNSt15_Deque_iteratorIjRjPjEC2ERKS2_(%"struct.std::_Deque_iterator"* %this, %"struct.std::_Deque_iterator"* %__x) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_Deque_iterator"*, align 4
  %__x.addr = alloca %"struct.std::_Deque_iterator"*, align 4
  store %"struct.std::_Deque_iterator"* %this, %"struct.std::_Deque_iterator"** %this.addr, align 4
  store %"struct.std::_Deque_iterator"* %__x, %"struct.std::_Deque_iterator"** %__x.addr, align 4
  %this1 = load %"struct.std::_Deque_iterator"** %this.addr
  %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator"* %this1, i32 0, i32 0
  %0 = load %"struct.std::_Deque_iterator"** %__x.addr, align 4
  %_M_cur2 = getelementptr inbounds %"struct.std::_Deque_iterator"* %0, i32 0, i32 0
  %1 = load i32** %_M_cur2, align 4
  store i32* %1, i32** %_M_cur, align 4
  %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator"* %this1, i32 0, i32 1
  %2 = load %"struct.std::_Deque_iterator"** %__x.addr, align 4
  %_M_first3 = getelementptr inbounds %"struct.std::_Deque_iterator"* %2, i32 0, i32 1
  %3 = load i32** %_M_first3, align 4
  store i32* %3, i32** %_M_first, align 4
  %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator"* %this1, i32 0, i32 2
  %4 = load %"struct.std::_Deque_iterator"** %__x.addr, align 4
  %_M_last4 = getelementptr inbounds %"struct.std::_Deque_iterator"* %4, i32 0, i32 2
  %5 = load i32** %_M_last4, align 4
  store i32* %5, i32** %_M_last, align 4
  %_M_node = getelementptr inbounds %"struct.std::_Deque_iterator"* %this1, i32 0, i32 3
  %6 = load %"struct.std::_Deque_iterator"** %__x.addr, align 4
  %_M_node5 = getelementptr inbounds %"struct.std::_Deque_iterator"* %6, i32 0, i32 3
  %7 = load i32*** %_M_node5, align 4
  store i32** %7, i32*** %_M_node, align 4
  ret void
}

define linkonce_odr void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEC2ERKS4_(%"struct.boost::two_bit_color_map"* %this, %"struct.boost::two_bit_color_map"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::two_bit_color_map"*, align 4
  %.addr = alloca %"struct.boost::two_bit_color_map"*, align 4
  store %"struct.boost::two_bit_color_map"* %this, %"struct.boost::two_bit_color_map"** %this.addr, align 4
  store %"struct.boost::two_bit_color_map"* %0, %"struct.boost::two_bit_color_map"** %.addr, align 4
  %this1 = load %"struct.boost::two_bit_color_map"** %this.addr
  %n = getelementptr inbounds %"struct.boost::two_bit_color_map"* %this1, i32 0, i32 0
  %1 = load %"struct.boost::two_bit_color_map"** %.addr, align 4
  %n2 = getelementptr inbounds %"struct.boost::two_bit_color_map"* %1, i32 0, i32 0
  %2 = load i32* %n2, align 4
  store i32 %2, i32* %n, align 4
  %index = getelementptr inbounds %"struct.boost::two_bit_color_map"* %this1, i32 0, i32 1
  %3 = load %"struct.boost::two_bit_color_map"** %.addr, align 4
  %index3 = getelementptr inbounds %"struct.boost::two_bit_color_map"* %3, i32 0, i32 1
  %data = getelementptr inbounds %"struct.boost::two_bit_color_map"* %this1, i32 0, i32 2
  %4 = load %"struct.boost::two_bit_color_map"** %.addr, align 4
  %data4 = getelementptr inbounds %"struct.boost::two_bit_color_map"* %4, i32 0, i32 2
  call void @_ZN5boost12shared_arrayIhEC1ERKS1_(%"class.boost::shared_array"* %data, %"class.boost::shared_array"* %data4)
  ret void
}

define linkonce_odr void @_ZN5boost12shared_arrayIhEC1ERKS1_(%"class.boost::shared_array"* %this, %"class.boost::shared_array"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::shared_array"*, align 4
  %.addr = alloca %"class.boost::shared_array"*, align 4
  store %"class.boost::shared_array"* %this, %"class.boost::shared_array"** %this.addr, align 4
  store %"class.boost::shared_array"* %0, %"class.boost::shared_array"** %.addr, align 4
  %this1 = load %"class.boost::shared_array"** %this.addr
  %1 = load %"class.boost::shared_array"** %.addr
  call void @_ZN5boost12shared_arrayIhEC2ERKS1_(%"class.boost::shared_array"* %this1, %"class.boost::shared_array"* %1)
  ret void
}

define linkonce_odr void @_ZN5boost12shared_arrayIhEC2ERKS1_(%"class.boost::shared_array"* %this, %"class.boost::shared_array"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::shared_array"*, align 4
  %.addr = alloca %"class.boost::shared_array"*, align 4
  store %"class.boost::shared_array"* %this, %"class.boost::shared_array"** %this.addr, align 4
  store %"class.boost::shared_array"* %0, %"class.boost::shared_array"** %.addr, align 4
  %this1 = load %"class.boost::shared_array"** %this.addr
  %px = getelementptr inbounds %"class.boost::shared_array"* %this1, i32 0, i32 0
  %1 = load %"class.boost::shared_array"** %.addr, align 4
  %px2 = getelementptr inbounds %"class.boost::shared_array"* %1, i32 0, i32 0
  %2 = load i8** %px2, align 4
  store i8* %2, i8** %px, align 4
  %pn = getelementptr inbounds %"class.boost::shared_array"* %this1, i32 0, i32 1
  %3 = load %"class.boost::shared_array"** %.addr, align 4
  %pn3 = getelementptr inbounds %"class.boost::shared_array"* %3, i32 0, i32 1
  call void @_ZN5boost6detail12shared_countC1ERKS1_(%"class.boost::detail::shared_count"* %pn, %"class.boost::detail::shared_count"* %pn3)
  ret void
}

define linkonce_odr void @_ZN5boost6detail12shared_countC1ERKS1_(%"class.boost::detail::shared_count"* %this, %"class.boost::detail::shared_count"* %r) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::shared_count"*, align 4
  %r.addr = alloca %"class.boost::detail::shared_count"*, align 4
  store %"class.boost::detail::shared_count"* %this, %"class.boost::detail::shared_count"** %this.addr, align 4
  store %"class.boost::detail::shared_count"* %r, %"class.boost::detail::shared_count"** %r.addr, align 4
  %this1 = load %"class.boost::detail::shared_count"** %this.addr
  %0 = load %"class.boost::detail::shared_count"** %r.addr
  call void @_ZN5boost6detail12shared_countC2ERKS1_(%"class.boost::detail::shared_count"* %this1, %"class.boost::detail::shared_count"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost6detail12shared_countC2ERKS1_(%"class.boost::detail::shared_count"* %this, %"class.boost::detail::shared_count"* %r) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::shared_count"*, align 4
  %r.addr = alloca %"class.boost::detail::shared_count"*, align 4
  store %"class.boost::detail::shared_count"* %this, %"class.boost::detail::shared_count"** %this.addr, align 4
  store %"class.boost::detail::shared_count"* %r, %"class.boost::detail::shared_count"** %r.addr, align 4
  %this1 = load %"class.boost::detail::shared_count"** %this.addr
  %pi_ = getelementptr inbounds %"class.boost::detail::shared_count"* %this1, i32 0, i32 0
  %0 = load %"class.boost::detail::shared_count"** %r.addr, align 4
  %pi_2 = getelementptr inbounds %"class.boost::detail::shared_count"* %0, i32 0, i32 0
  %1 = load %"class.boost::detail::sp_counted_base"** %pi_2, align 4
  store %"class.boost::detail::sp_counted_base"* %1, %"class.boost::detail::sp_counted_base"** %pi_, align 4
  %pi_3 = getelementptr inbounds %"class.boost::detail::shared_count"* %this1, i32 0, i32 0
  %2 = load %"class.boost::detail::sp_counted_base"** %pi_3, align 4
  %cmp = icmp ne %"class.boost::detail::sp_counted_base"* %2, null
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %pi_4 = getelementptr inbounds %"class.boost::detail::shared_count"* %this1, i32 0, i32 0
  %3 = load %"class.boost::detail::sp_counted_base"** %pi_4, align 4
  call void @_ZN5boost6detail15sp_counted_base12add_ref_copyEv(%"class.boost::detail::sp_counted_base"* %3)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
  ret void
}

define linkonce_odr void @_ZN5boost6detail15sp_counted_base12add_ref_copyEv(%"class.boost::detail::sp_counted_base"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_base"*, align 4
  store %"class.boost::detail::sp_counted_base"* %this, %"class.boost::detail::sp_counted_base"** %this.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_base"** %this.addr
  %use_count_ = getelementptr inbounds %"class.boost::detail::sp_counted_base"* %this1, i32 0, i32 1
  call void @_ZN5boost6detail16atomic_incrementEPi(i32* %use_count_)
  ret void
}

define linkonce_odr void @_ZN5boost6detail16atomic_incrementEPi(i32* %pw) nounwind inlinehint {
entry:
  %pw.addr = alloca i32*, align 4
  store i32* %pw, i32** %pw.addr, align 4
  %0 = load i32** %pw.addr, align 4
  %1 = load i32** %pw.addr, align 4
  call void asm "lock\0A\09incl $0", "=*m,*m,~{cc},~{dirflag},~{fpsr},~{flags}"(i32* %0, i32* %1) nounwind, !srcloc !1
  ret void
}

define linkonce_odr void @_ZN5boost17reference_wrapperINS_5queueIjSt5dequeIjSaIjEEEEEC1ERS5_(%"class.boost::reference_wrapper"* %this, %"class.boost::queue"* %t) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::reference_wrapper"*, align 4
  %t.addr = alloca %"class.boost::queue"*, align 4
  store %"class.boost::reference_wrapper"* %this, %"class.boost::reference_wrapper"** %this.addr, align 4
  store %"class.boost::queue"* %t, %"class.boost::queue"** %t.addr, align 4
  %this1 = load %"class.boost::reference_wrapper"** %this.addr
  %0 = load %"class.boost::queue"** %t.addr
  call void @_ZN5boost17reference_wrapperINS_5queueIjSt5dequeIjSaIjEEEEEC2ERS5_(%"class.boost::reference_wrapper"* %this1, %"class.boost::queue"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost17reference_wrapperINS_5queueIjSt5dequeIjSaIjEEEEEC2ERS5_(%"class.boost::reference_wrapper"* %this, %"class.boost::queue"* %t) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::reference_wrapper"*, align 4
  %t.addr = alloca %"class.boost::queue"*, align 4
  store %"class.boost::reference_wrapper"* %this, %"class.boost::reference_wrapper"** %this.addr, align 4
  store %"class.boost::queue"* %t, %"class.boost::queue"** %t.addr, align 4
  %this1 = load %"class.boost::reference_wrapper"** %this.addr
  %t_ = getelementptr inbounds %"class.boost::reference_wrapper"* %this1, i32 0, i32 0
  %0 = load %"class.boost::queue"** %t.addr, align 4
  %call = call %"class.boost::queue"* @_ZN5boost9addressofINS_5queueIjSt5dequeIjSaIjEEEEEEPT_RS6_(%"class.boost::queue"* %0)
  store %"class.boost::queue"* %call, %"class.boost::queue"** %t_, align 4
  ret void
}

define linkonce_odr %"class.boost::queue"* @_ZN5boost9addressofINS_5queueIjSt5dequeIjSaIjEEEEEEPT_RS6_(%"class.boost::queue"* %v) {
entry:
  %v.addr = alloca %"class.boost::queue"*, align 4
  %tmp = alloca %"struct.boost::detail::addr_impl_ref", align 4
  store %"class.boost::queue"* %v, %"class.boost::queue"** %v.addr, align 4
  %0 = load %"class.boost::queue"** %v.addr, align 4
  call void @_ZN5boost6detail13addr_impl_refINS_5queueIjSt5dequeIjSaIjEEEEEC1ERS6_(%"struct.boost::detail::addr_impl_ref"* %tmp, %"class.boost::queue"* %0)
  %call = call %"class.boost::queue"* @_ZNK5boost6detail13addr_impl_refINS_5queueIjSt5dequeIjSaIjEEEEEcvRS6_Ev(%"struct.boost::detail::addr_impl_ref"* %tmp)
  %call1 = call %"class.boost::queue"* @_ZN5boost6detail14addressof_implINS_5queueIjSt5dequeIjSaIjEEEEE1fERS6_l(%"class.boost::queue"* %call, i32 0)
  ret %"class.boost::queue"* %call1
}

define linkonce_odr %"class.boost::queue"* @_ZN5boost6detail14addressof_implINS_5queueIjSt5dequeIjSaIjEEEEE1fERS6_l(%"class.boost::queue"* %v, i32) nounwind inlinehint align 2 {
entry:
  %v.addr = alloca %"class.boost::queue"*, align 4
  %.addr = alloca i32, align 4
  store %"class.boost::queue"* %v, %"class.boost::queue"** %v.addr, align 4
  store i32 %0, i32* %.addr, align 4
  %1 = load %"class.boost::queue"** %v.addr, align 4
  %2 = bitcast %"class.boost::queue"* %1 to i8*
  %3 = bitcast i8* %2 to %"class.boost::queue"*
  ret %"class.boost::queue"* %3
}

define linkonce_odr void @_ZN5boost6detail13addr_impl_refINS_5queueIjSt5dequeIjSaIjEEEEEC1ERS6_(%"struct.boost::detail::addr_impl_ref"* %this, %"class.boost::queue"* %v) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::addr_impl_ref"*, align 4
  %v.addr = alloca %"class.boost::queue"*, align 4
  store %"struct.boost::detail::addr_impl_ref"* %this, %"struct.boost::detail::addr_impl_ref"** %this.addr, align 4
  store %"class.boost::queue"* %v, %"class.boost::queue"** %v.addr, align 4
  %this1 = load %"struct.boost::detail::addr_impl_ref"** %this.addr
  %0 = load %"class.boost::queue"** %v.addr
  call void @_ZN5boost6detail13addr_impl_refINS_5queueIjSt5dequeIjSaIjEEEEEC2ERS6_(%"struct.boost::detail::addr_impl_ref"* %this1, %"class.boost::queue"* %0)
  ret void
}

define linkonce_odr %"class.boost::queue"* @_ZNK5boost6detail13addr_impl_refINS_5queueIjSt5dequeIjSaIjEEEEEcvRS6_Ev(%"struct.boost::detail::addr_impl_ref"* %this) nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::addr_impl_ref"*, align 4
  store %"struct.boost::detail::addr_impl_ref"* %this, %"struct.boost::detail::addr_impl_ref"** %this.addr, align 4
  %this1 = load %"struct.boost::detail::addr_impl_ref"** %this.addr
  %v_ = getelementptr inbounds %"struct.boost::detail::addr_impl_ref"* %this1, i32 0, i32 0
  %ref = load %"class.boost::queue"** %v_, align 4
  ret %"class.boost::queue"* %ref
}

define linkonce_odr void @_ZN5boost6detail13addr_impl_refINS_5queueIjSt5dequeIjSaIjEEEEEC2ERS6_(%"struct.boost::detail::addr_impl_ref"* %this, %"class.boost::queue"* %v) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::addr_impl_ref"*, align 4
  %v.addr = alloca %"class.boost::queue"*, align 4
  store %"struct.boost::detail::addr_impl_ref"* %this, %"struct.boost::detail::addr_impl_ref"** %this.addr, align 4
  store %"class.boost::queue"* %v, %"class.boost::queue"** %v.addr, align 4
  %this1 = load %"struct.boost::detail::addr_impl_ref"** %this.addr
  %0 = getelementptr inbounds %"struct.boost::detail::addr_impl_ref"* %this1, i32 0, i32 0
  %1 = load %"class.boost::queue"** %v.addr, align 4
  store %"class.boost::queue"* %1, %"class.boost::queue"** %0, align 4
  ret void
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_14buffer_param_tENS_16bgl_named_paramsINS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES5_INS_16on_non_tree_edgeEEEEENS_15graph_visitor_tENS_11no_propertyEEENS_15param_not_foundEE3getERKSE_RKSF_(%"struct.boost::bgl_named_params.17"* %p, %"struct.boost::param_not_found"* %def) align 2 {
entry:
  %p.addr = alloca %"struct.boost::bgl_named_params.17"*, align 4
  %def.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::bgl_named_params.17"* %p, %"struct.boost::bgl_named_params.17"** %p.addr, align 4
  store %"struct.boost::param_not_found"* %def, %"struct.boost::param_not_found"** %def.addr, align 4
  %0 = load %"struct.boost::bgl_named_params.17"** %p.addr, align 4
  %m_base = getelementptr inbounds %"struct.boost::bgl_named_params.17"* %0, i32 0, i32 1
  %1 = load %"struct.boost::param_not_found"** %def.addr, align 4
  %call = call %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_14buffer_param_tENS_11no_propertyENS_15param_not_foundEE3getERKS2_RKS3_(%"struct.boost::no_property"* %m_base, %"struct.boost::param_not_found"* %1)
  ret %"struct.boost::param_not_found"* %call
}

define linkonce_odr %"struct.boost::param_not_found"* @_ZN5boost22lookup_named_param_defINS_14buffer_param_tENS_11no_propertyENS_15param_not_foundEE3getERKS2_RKS3_(%"struct.boost::no_property"*, %"struct.boost::param_not_found"* %def) nounwind align 2 {
entry:
  %.addr = alloca %"struct.boost::no_property"*, align 4
  %def.addr = alloca %"struct.boost::param_not_found"*, align 4
  store %"struct.boost::no_property"* %0, %"struct.boost::no_property"** %.addr, align 4
  store %"struct.boost::param_not_found"* %def, %"struct.boost::param_not_found"** %def.addr, align 4
  %1 = load %"struct.boost::param_not_found"** %def.addr, align 4
  ret %"struct.boost::param_not_found"* %1
}

declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i32, i1) nounwind

define linkonce_odr void @_ZN5boost20breadth_first_searchINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEEPjNS_5queueIjSt5dequeIjSaIjEEEENS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEESF_INS_16on_non_tree_edgeEEEEENS_17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapIS4_jEEEEEEvRKT_T0_ST_RT1_T2_T3_(%"class.boost::adjacency_list"* %g, i32* %sources_begin, i32* %sources_end, %"class.boost::queue"* %Q, %"class.boost::bfs_visitor"* %vis, %"struct.boost::two_bit_color_map"* %color) {
entry:
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %sources_begin.addr = alloca i32*, align 4
  %sources_end.addr = alloca i32*, align 4
  %Q.addr = alloca %"class.boost::queue"*, align 4
  %i = alloca %"class.boost::range_detail::integer_iterator", align 4
  %i_end = alloca %"class.boost::range_detail::integer_iterator", align 4
  %tmp = alloca %"class.boost::tuples::tuple", align 4
  %ref.tmp = alloca %"struct.std::pair.32", align 4
  %tmp3 = alloca %"struct.boost::graph::bfs_visitor_event_not_overridden", align 1
  %agg.tmp = alloca %"class.boost::bfs_visitor", align 4
  %agg.tmp7 = alloca %"struct.boost::two_bit_color_map", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store i32* %sources_begin, i32** %sources_begin.addr, align 4
  store i32* %sources_end, i32** %sources_end.addr, align 4
  store %"class.boost::queue"* %Q, %"class.boost::queue"** %Q.addr, align 4
  call void @_ZN5boost12range_detail16integer_iteratorIjEC1Ev(%"class.boost::range_detail::integer_iterator"* %i)
  call void @_ZN5boost12range_detail16integer_iteratorIjEC1Ev(%"class.boost::range_detail::integer_iterator"* %i_end)
  call void @_ZN5boost6tuples3tieINS_12range_detail16integer_iteratorIjEES4_EENS0_6detail10tie_mapperIT_T0_vvvvvvvvE4typeERS7_RS8_(%"class.boost::tuples::tuple"* sret %tmp, %"class.boost::range_detail::integer_iterator"* %i, %"class.boost::range_detail::integer_iterator"* %i_end)
  %0 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = bitcast %"class.boost::adjacency_list"* %0 to %"struct.boost::adj_list_helper"*
  call void @_ZN5boost8verticesINS_6detail12adj_list_genINS_14adjacency_listINS_4vecSES4_NS_9directedSENS_11no_propertyES6_S6_NS_5listSEEES4_S4_S5_S6_S6_S6_S7_E6configENS_21directed_graph_helperISA_EEEESt4pairINT_15vertex_iteratorESF_ERKNS_15adj_list_helperISE_T0_EE(%"struct.std::pair.32"* sret %ref.tmp, %"struct.boost::adj_list_helper"* %1)
  %call = call %"class.boost::tuples::tuple"* @_ZN5boost6tuples5tupleIRNS_12range_detail16integer_iteratorIjEES5_NS0_9null_typeES6_S6_S6_S6_S6_S6_S6_EaSIS4_S4_EERS7_RKSt4pairIT_T0_E(%"class.boost::tuples::tuple"* %tmp, %"struct.std::pair.32"* %ref.tmp)
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %2 = bitcast %"class.boost::range_detail::integer_iterator"* %i to %"class.boost::iterator_facade"*
  %3 = bitcast %"class.boost::range_detail::integer_iterator"* %i_end to %"class.boost::iterator_facade"*
  %call1 = call zeroext i1 @_ZN5boostneINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiS3_jS4_jiEENS_6detail23enable_if_interoperableIT_T4_NS_3mpl6apply2INS5_12always_bool2ES7_S8_E4typeEE4typeERKNS_15iterator_facadeIS7_T0_T1_T2_T3_EERKNSG_IS8_T5_T6_T7_T8_EE(%"class.boost::iterator_facade"* %2, %"class.boost::iterator_facade"* %3)
  br i1 %call1, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %4 = bitcast %"class.boost::range_detail::integer_iterator"* %i to %"class.boost::iterator_facade"*
  %call2 = call i32 @_ZNK5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiEdeEv(%"class.boost::iterator_facade"* %4)
  %5 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEE17initialize_vertexIjKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEEEENS_5graph32bfs_visitor_event_not_overriddenET_RT0_(%"struct.boost::graph::bfs_visitor_event_not_overridden"* sret %tmp3, %"class.boost::bfs_visitor"* %vis, i32 %call2, %"class.boost::adjacency_list"* %5)
  %6 = bitcast %"class.boost::range_detail::integer_iterator"* %i to %"class.boost::iterator_facade"*
  %call4 = call i32 @_ZNK5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiEdeEv(%"class.boost::iterator_facade"* %6)
  %call5 = call i32 @_ZN5boost12color_traitsINS_18two_bit_color_typeEE5whiteEv()
  call void @_ZN5boost3putINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEEvRKNS_17two_bit_color_mapIT_EENS_15property_traitsIS5_E8key_typeENS_18two_bit_color_typeE(%"struct.boost::two_bit_color_map"* %color, i32 %call4, i32 %call5)
  br label %for.inc

for.inc:                                          ; preds = %for.body
  %7 = bitcast %"class.boost::range_detail::integer_iterator"* %i to %"class.boost::iterator_facade"*
  %call6 = call %"class.boost::range_detail::integer_iterator"* @_ZN5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiEppEv(%"class.boost::iterator_facade"* %7)
  br label %for.cond

for.end:                                          ; preds = %for.cond
  %8 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %9 = load i32** %sources_begin.addr, align 4
  %10 = load i32** %sources_end.addr, align 4
  %11 = load %"class.boost::queue"** %Q.addr, align 4
  call void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEEC1ERKS8_(%"class.boost::bfs_visitor"* %agg.tmp, %"class.boost::bfs_visitor"* %vis)
  invoke void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEC1ERKS4_(%"struct.boost::two_bit_color_map"* %agg.tmp7, %"struct.boost::two_bit_color_map"* %color)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %for.end
  invoke void @_ZN5boost19breadth_first_visitINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_5queueIjSt5dequeIjSaIjEEEENS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEESE_INS_16on_non_tree_edgeEEEEENS_17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapIS4_jEEEEPjEEvRKT_T3_ST_RT0_T1_T2_(%"class.boost::adjacency_list"* %8, i32* %9, i32* %10, %"class.boost::queue"* %11, %"class.boost::bfs_visitor"* %agg.tmp, %"struct.boost::two_bit_color_map"* %agg.tmp7)
          to label %invoke.cont9 unwind label %lpad8

invoke.cont9:                                     ; preds = %invoke.cont
  invoke void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED1Ev(%"struct.boost::two_bit_color_map"* %agg.tmp7)
          to label %invoke.cont10 unwind label %lpad

invoke.cont10:                                    ; preds = %invoke.cont9
  call void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEED1Ev(%"class.boost::bfs_visitor"* %agg.tmp)
  ret void

lpad:                                             ; preds = %invoke.cont9, %for.end
  %12 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %13 = extractvalue { i8*, i32 } %12, 0
  store i8* %13, i8** %exn.slot
  %14 = extractvalue { i8*, i32 } %12, 1
  store i32 %14, i32* %ehselector.slot
  br label %ehcleanup

lpad8:                                            ; preds = %invoke.cont
  %15 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %16 = extractvalue { i8*, i32 } %15, 0
  store i8* %16, i8** %exn.slot
  %17 = extractvalue { i8*, i32 } %15, 1
  store i32 %17, i32* %ehselector.slot
  invoke void @_ZN5boost17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED1Ev(%"struct.boost::two_bit_color_map"* %agg.tmp7)
          to label %invoke.cont11 unwind label %terminate.lpad

invoke.cont11:                                    ; preds = %lpad8
  br label %ehcleanup

ehcleanup:                                        ; preds = %invoke.cont11, %lpad
  invoke void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEED1Ev(%"class.boost::bfs_visitor"* %agg.tmp)
          to label %invoke.cont12 unwind label %terminate.lpad

invoke.cont12:                                    ; preds = %ehcleanup
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont12
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val13 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val13

terminate.lpad:                                   ; preds = %ehcleanup, %lpad8
  %18 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost12range_detail16integer_iteratorIjEC1Ev(%"class.boost::range_detail::integer_iterator"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  store %"class.boost::range_detail::integer_iterator"* %this, %"class.boost::range_detail::integer_iterator"** %this.addr, align 4
  %this1 = load %"class.boost::range_detail::integer_iterator"** %this.addr
  call void @_ZN5boost12range_detail16integer_iteratorIjEC2Ev(%"class.boost::range_detail::integer_iterator"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples3tieINS_12range_detail16integer_iteratorIjEES4_EENS0_6detail10tie_mapperIT_T0_vvvvvvvvE4typeERS7_RS8_(%"class.boost::tuples::tuple"* noalias sret %agg.result, %"class.boost::range_detail::integer_iterator"* %t0, %"class.boost::range_detail::integer_iterator"* %t1) inlinehint {
entry:
  %t0.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %t1.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  store %"class.boost::range_detail::integer_iterator"* %t0, %"class.boost::range_detail::integer_iterator"** %t0.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %t1, %"class.boost::range_detail::integer_iterator"** %t1.addr, align 4
  %0 = load %"class.boost::range_detail::integer_iterator"** %t0.addr, align 4
  %1 = load %"class.boost::range_detail::integer_iterator"** %t1.addr, align 4
  call void @_ZN5boost6tuples5tupleIRNS_12range_detail16integer_iteratorIjEES5_NS0_9null_typeES6_S6_S6_S6_S6_S6_S6_EC1ES5_S5_(%"class.boost::tuples::tuple"* %agg.result, %"class.boost::range_detail::integer_iterator"* %0, %"class.boost::range_detail::integer_iterator"* %1)
  ret void
}

define linkonce_odr %"class.boost::tuples::tuple"* @_ZN5boost6tuples5tupleIRNS_12range_detail16integer_iteratorIjEES5_NS0_9null_typeES6_S6_S6_S6_S6_S6_S6_EaSIS4_S4_EERS7_RKSt4pairIT_T0_E(%"class.boost::tuples::tuple"* %this, %"struct.std::pair.32"* %k) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::tuples::tuple"*, align 4
  %k.addr = alloca %"struct.std::pair.32"*, align 4
  store %"class.boost::tuples::tuple"* %this, %"class.boost::tuples::tuple"** %this.addr, align 4
  store %"struct.std::pair.32"* %k, %"struct.std::pair.32"** %k.addr, align 4
  %this1 = load %"class.boost::tuples::tuple"** %this.addr
  %0 = bitcast %"class.boost::tuples::tuple"* %this1 to %"struct.boost::tuples::cons"*
  %head = getelementptr inbounds %"struct.boost::tuples::cons"* %0, i32 0, i32 0
  %ref = load %"class.boost::range_detail::integer_iterator"** %head, align 4
  %1 = load %"struct.std::pair.32"** %k.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.32"* %1, i32 0, i32 0
  %2 = bitcast %"class.boost::range_detail::integer_iterator"* %ref to i8*
  %3 = bitcast %"class.boost::range_detail::integer_iterator"* %first to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 4, i32 4, i1 false)
  %4 = bitcast %"class.boost::tuples::tuple"* %this1 to %"struct.boost::tuples::cons"*
  %tail = getelementptr inbounds %"struct.boost::tuples::cons"* %4, i32 0, i32 1
  %head2 = getelementptr inbounds %"struct.boost::tuples::cons.31"* %tail, i32 0, i32 0
  %ref3 = load %"class.boost::range_detail::integer_iterator"** %head2, align 4
  %5 = load %"struct.std::pair.32"** %k.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.32"* %5, i32 0, i32 1
  %6 = bitcast %"class.boost::range_detail::integer_iterator"* %ref3 to i8*
  %7 = bitcast %"class.boost::range_detail::integer_iterator"* %second to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %6, i8* %7, i32 4, i32 4, i1 false)
  ret %"class.boost::tuples::tuple"* %this1
}

define linkonce_odr void @_ZN5boost8verticesINS_6detail12adj_list_genINS_14adjacency_listINS_4vecSES4_NS_9directedSENS_11no_propertyES6_S6_NS_5listSEEES4_S4_S5_S6_S6_S6_S7_E6configENS_21directed_graph_helperISA_EEEESt4pairINT_15vertex_iteratorESF_ERKNS_15adj_list_helperISE_T0_EE(%"struct.std::pair.32"* noalias sret %agg.result, %"struct.boost::adj_list_helper"* %g_) inlinehint {
entry:
  %g_.addr = alloca %"struct.boost::adj_list_helper"*, align 4
  %cg = alloca %"class.boost::adjacency_list"*, align 4
  %g = alloca %"class.boost::adjacency_list"*, align 4
  %agg.tmp = alloca %"class.boost::range_detail::integer_iterator", align 4
  %tmp = alloca %"class.boost::integer_range", align 4
  %agg.tmp1 = alloca %"class.boost::range_detail::integer_iterator", align 4
  %tmp2 = alloca %"class.boost::integer_range", align 4
  store %"struct.boost::adj_list_helper"* %g_, %"struct.boost::adj_list_helper"** %g_.addr, align 4
  %0 = load %"struct.boost::adj_list_helper"** %g_.addr, align 4
  %1 = bitcast %"struct.boost::adj_list_helper"* %0 to %"class.boost::adjacency_list"*
  store %"class.boost::adjacency_list"* %1, %"class.boost::adjacency_list"** %cg, align 4
  %2 = load %"class.boost::adjacency_list"** %cg, align 4
  store %"class.boost::adjacency_list"* %2, %"class.boost::adjacency_list"** %g, align 4
  %3 = load %"class.boost::adjacency_list"** %g, align 4
  %4 = bitcast %"class.boost::adjacency_list"* %3 to %"class.boost::vec_adj_list_impl"*
  call void @_ZNK5boost17vec_adj_list_implINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_6detail12adj_list_genIS6_S2_S2_S3_S4_S4_S4_S5_E6configENS_21directed_graph_helperISA_EEE10vertex_setEv(%"class.boost::integer_range"* sret %tmp, %"class.boost::vec_adj_list_impl"* %4)
  %5 = bitcast %"class.boost::integer_range"* %tmp to %"class.boost::iterator_range"*
  call void @_ZNK5boost14iterator_rangeINS_12range_detail16integer_iteratorIjEEE5beginEv(%"class.boost::range_detail::integer_iterator"* sret %agg.tmp, %"class.boost::iterator_range"* %5)
  %6 = load %"class.boost::adjacency_list"** %g, align 4
  %7 = bitcast %"class.boost::adjacency_list"* %6 to %"class.boost::vec_adj_list_impl"*
  call void @_ZNK5boost17vec_adj_list_implINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_6detail12adj_list_genIS6_S2_S2_S3_S4_S4_S4_S5_E6configENS_21directed_graph_helperISA_EEE10vertex_setEv(%"class.boost::integer_range"* sret %tmp2, %"class.boost::vec_adj_list_impl"* %7)
  %8 = bitcast %"class.boost::integer_range"* %tmp2 to %"class.boost::iterator_range"*
  call void @_ZNK5boost14iterator_rangeINS_12range_detail16integer_iteratorIjEEE3endEv(%"class.boost::range_detail::integer_iterator"* sret %agg.tmp1, %"class.boost::iterator_range"* %8)
  call void @_ZSt9make_pairIN5boost12range_detail16integer_iteratorIjEES3_ESt4pairIT_T0_ES5_S6_(%"struct.std::pair.32"* sret %agg.result, %"class.boost::range_detail::integer_iterator"* byval align 4 %agg.tmp, %"class.boost::range_detail::integer_iterator"* byval align 4 %agg.tmp1)
  ret void
}

define linkonce_odr zeroext i1 @_ZN5boostneINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiS3_jS4_jiEENS_6detail23enable_if_interoperableIT_T4_NS_3mpl6apply2INS5_12always_bool2ES7_S8_E4typeEE4typeERKNS_15iterator_facadeIS7_T0_T1_T2_T3_EERKNSG_IS8_T5_T6_T7_T8_EE(%"class.boost::iterator_facade"* %lhs, %"class.boost::iterator_facade"* %rhs) inlinehint {
entry:
  %lhs.addr = alloca %"class.boost::iterator_facade"*, align 4
  %rhs.addr = alloca %"class.boost::iterator_facade"*, align 4
  %agg.tmp = alloca %"struct.mpl_::bool_", align 1
  %ref.tmp = alloca %"struct.boost::is_convertible.40", align 1
  store %"class.boost::iterator_facade"* %lhs, %"class.boost::iterator_facade"** %lhs.addr, align 4
  store %"class.boost::iterator_facade"* %rhs, %"class.boost::iterator_facade"** %rhs.addr, align 4
  %0 = load %"class.boost::iterator_facade"** %lhs.addr, align 4
  %1 = bitcast %"class.boost::iterator_facade"* %0 to %"class.boost::range_detail::integer_iterator"*
  %2 = load %"class.boost::iterator_facade"** %rhs.addr, align 4
  %3 = bitcast %"class.boost::iterator_facade"* %2 to %"class.boost::range_detail::integer_iterator"*
  %4 = bitcast %"struct.boost::is_convertible.40"* %ref.tmp to %"struct.mpl_::bool_"*
  %call = call zeroext i1 @_ZN5boost20iterator_core_access5equalINS_12range_detail16integer_iteratorIjEES4_EEbRKT_RKT0_N4mpl_5bool_ILb1EEE(%"class.boost::range_detail::integer_iterator"* %1, %"class.boost::range_detail::integer_iterator"* %3)
  %lnot = xor i1 %call, true
  ret i1 %lnot
}

define linkonce_odr void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEE17initialize_vertexIjKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEEEENS_5graph32bfs_visitor_event_not_overriddenET_RT0_(%"struct.boost::graph::bfs_visitor_event_not_overridden"* noalias sret %agg.result, %"class.boost::bfs_visitor"* %this, i32 %u, %"class.boost::adjacency_list"* %g) align 2 {
entry:
  %this.addr = alloca %"class.boost::bfs_visitor"*, align 4
  %u.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %agg.tmp = alloca %"struct.boost::on_initialize_vertex", align 1
  store %"class.boost::bfs_visitor"* %this, %"class.boost::bfs_visitor"** %this.addr, align 4
  store i32 %u, i32* %u.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"class.boost::bfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::bfs_visitor"* %this1, i32 0, i32 0
  %0 = load i32* %u.addr, align 4
  %1 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEES1_INS_16on_non_tree_edgeEEjKNS_14adjacency_listINS_4vecSES7_NS_9directedSENS_11no_propertyES9_S9_NS_5listSEEENS_20on_initialize_vertexEEEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.18"* %m_vis, i32 %0, %"class.boost::adjacency_list"* %1)
  ret void
}

define linkonce_odr i32 @_ZNK5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiEdeEv(%"class.boost::iterator_facade"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_facade"*, align 4
  store %"class.boost::iterator_facade"* %this, %"class.boost::iterator_facade"** %this.addr, align 4
  %this1 = load %"class.boost::iterator_facade"** %this.addr
  %call = call %"class.boost::range_detail::integer_iterator"* @_ZNK5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiE7derivedEv(%"class.boost::iterator_facade"* %this1)
  %call2 = call i32 @_ZN5boost20iterator_core_access11dereferenceINS_12range_detail16integer_iteratorIjEEEENT_9referenceERKS5_(%"class.boost::range_detail::integer_iterator"* %call)
  ret i32 %call2
}

define linkonce_odr void @_ZN5boost3putINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEEvRKNS_17two_bit_color_mapIT_EENS_15property_traitsIS5_E8key_typeENS_18two_bit_color_typeE(%"struct.boost::two_bit_color_map"* %pm, i32 %key, i32 %value) inlinehint {
entry:
  %pm.addr = alloca %"struct.boost::two_bit_color_map"*, align 4
  %key.addr = alloca i32, align 4
  %value.addr = alloca i32, align 4
  %i = alloca i32, align 4
  %byte_num = alloca i32, align 4
  %bit_position = alloca i32, align 4
  store %"struct.boost::two_bit_color_map"* %pm, %"struct.boost::two_bit_color_map"** %pm.addr, align 4
  store i32 %key, i32* %key.addr, align 4
  store i32 %value, i32* %value.addr, align 4
  %0 = load %"struct.boost::two_bit_color_map"** %pm.addr, align 4
  %index = getelementptr inbounds %"struct.boost::two_bit_color_map"* %0, i32 0, i32 1
  %1 = bitcast %"struct.boost::vec_adj_list_vertex_id_map"* %index to %"struct.boost::put_get_helper"*
  %call = call i32 @_ZN5boost3getINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjjEET0_RKNS_14put_get_helperIS4_T_EERKT1_(%"struct.boost::put_get_helper"* %1, i32* %key.addr)
  store i32 %call, i32* %i, align 4
  %2 = load i32* %i, align 4
  %3 = load %"struct.boost::two_bit_color_map"** %pm.addr, align 4
  %n = getelementptr inbounds %"struct.boost::two_bit_color_map"* %3, i32 0, i32 0
  %4 = load i32* %n, align 4
  %cmp = icmp ult i32 %2, %4
  br i1 %cmp, label %cond.true, label %cond.false

cond.true:                                        ; preds = %entry
  br label %cond.end

cond.false:                                       ; preds = %entry
  call void @__assert_fail(i8* getelementptr inbounds ([22 x i8]* @.str9, i32 0, i32 0), i8* getelementptr inbounds ([60 x i8]* @.str10, i32 0, i32 0), i32 86, i8* getelementptr inbounds ([207 x i8]* @__PRETTY_FUNCTION__._ZN5boost3putINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEEvRKNS_17two_bit_color_mapIT_EENS_15property_traitsIS5_E8key_typeENS_18two_bit_color_typeE, i32 0, i32 0)) noreturn nounwind
  unreachable
                                                  ; No predecessors!
  br label %cond.end

cond.end:                                         ; preds = %5, %cond.true
  %6 = load i32* %value.addr, align 4
  %cmp1 = icmp sge i32 %6, 0
  br i1 %cmp1, label %land.lhs.true, label %cond.false4

land.lhs.true:                                    ; preds = %cond.end
  %7 = load i32* %value.addr, align 4
  %cmp2 = icmp slt i32 %7, 4
  br i1 %cmp2, label %cond.true3, label %cond.false4

cond.true3:                                       ; preds = %land.lhs.true
  br label %cond.end5

cond.false4:                                      ; preds = %land.lhs.true, %cond.end
  call void @__assert_fail(i8* getelementptr inbounds ([24 x i8]* @.str11, i32 0, i32 0), i8* getelementptr inbounds ([60 x i8]* @.str10, i32 0, i32 0), i32 87, i8* getelementptr inbounds ([207 x i8]* @__PRETTY_FUNCTION__._ZN5boost3putINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEEvRKNS_17two_bit_color_mapIT_EENS_15property_traitsIS5_E8key_typeENS_18two_bit_color_typeE, i32 0, i32 0)) noreturn nounwind
  unreachable
                                                  ; No predecessors!
  br label %cond.end5

cond.end5:                                        ; preds = %8, %cond.true3
  %9 = load i32* %i, align 4
  %div = udiv i32 %9, 4
  store i32 %div, i32* %byte_num, align 4
  %10 = load i32* %i, align 4
  %rem = urem i32 %10, 4
  %mul = mul i32 %rem, 2
  store i32 %mul, i32* %bit_position, align 4
  %11 = load i32* %byte_num, align 4
  %12 = load %"struct.boost::two_bit_color_map"** %pm.addr, align 4
  %data = getelementptr inbounds %"struct.boost::two_bit_color_map"* %12, i32 0, i32 2
  %call6 = call i8* @_ZNK5boost12shared_arrayIhE3getEv(%"class.boost::shared_array"* %data)
  %arrayidx = getelementptr inbounds i8* %call6, i32 %11
  %13 = load i8* %arrayidx, align 1
  %conv = zext i8 %13 to i32
  %14 = load i32* %bit_position, align 4
  %shl = shl i32 3, %14
  %neg = xor i32 %shl, -1
  %and = and i32 %conv, %neg
  %15 = load i32* %value.addr, align 4
  %16 = load i32* %bit_position, align 4
  %shl7 = shl i32 %15, %16
  %or = or i32 %and, %shl7
  %conv8 = trunc i32 %or to i8
  %17 = load i32* %byte_num, align 4
  %18 = load %"struct.boost::two_bit_color_map"** %pm.addr, align 4
  %data9 = getelementptr inbounds %"struct.boost::two_bit_color_map"* %18, i32 0, i32 2
  %call10 = call i8* @_ZNK5boost12shared_arrayIhE3getEv(%"class.boost::shared_array"* %data9)
  %arrayidx11 = getelementptr inbounds i8* %call10, i32 %17
  store i8 %conv8, i8* %arrayidx11, align 1
  ret void
}

define linkonce_odr i32 @_ZN5boost12color_traitsINS_18two_bit_color_typeEE5whiteEv() nounwind align 2 {
entry:
  ret i32 0
}

define linkonce_odr %"class.boost::range_detail::integer_iterator"* @_ZN5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiEppEv(%"class.boost::iterator_facade"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_facade"*, align 4
  store %"class.boost::iterator_facade"* %this, %"class.boost::iterator_facade"** %this.addr, align 4
  %this1 = load %"class.boost::iterator_facade"** %this.addr
  %call = call %"class.boost::range_detail::integer_iterator"* @_ZN5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiE7derivedEv(%"class.boost::iterator_facade"* %this1)
  call void @_ZN5boost20iterator_core_access9incrementINS_12range_detail16integer_iteratorIjEEEEvRT_(%"class.boost::range_detail::integer_iterator"* %call)
  %call2 = call %"class.boost::range_detail::integer_iterator"* @_ZN5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiE7derivedEv(%"class.boost::iterator_facade"* %this1)
  ret %"class.boost::range_detail::integer_iterator"* %call2
}

define linkonce_odr void @_ZN5boost19breadth_first_visitINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_5queueIjSt5dequeIjSaIjEEEENS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEESE_INS_16on_non_tree_edgeEEEEENS_17two_bit_color_mapINS_26vec_adj_list_vertex_id_mapIS4_jEEEEPjEEvRKT_T3_ST_RT0_T1_T2_(%"class.boost::adjacency_list"* %g, i32* %sources_begin, i32* %sources_end, %"class.boost::queue"* %Q, %"class.boost::bfs_visitor"* %vis, %"struct.boost::two_bit_color_map"* %color) {
entry:
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %sources_begin.addr = alloca i32*, align 4
  %sources_end.addr = alloca i32*, align 4
  %Q.addr = alloca %"class.boost::queue"*, align 4
  %ei = alloca %"struct.boost::detail::out_edge_iter", align 4
  %ei_end = alloca %"struct.boost::detail::out_edge_iter", align 4
  %s = alloca i32, align 4
  %tmp = alloca %"struct.boost::graph::bfs_visitor_event_not_overridden", align 1
  %u = alloca i32, align 4
  %tmp4 = alloca %"struct.boost::graph::bfs_visitor_event_not_overridden", align 1
  %tmp5 = alloca %"class.boost::tuples::tuple.34", align 4
  %ref.tmp = alloca %"struct.std::pair.37", align 4
  %v = alloca i32, align 4
  %ref.tmp11 = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %tmp13 = alloca %"struct.boost::graph::bfs_visitor_event_not_overridden", align 1
  %v_color = alloca i32, align 4
  %agg.tmp18 = alloca %"class.boost::detail::edge_desc_impl", align 4
  %tmp19 = alloca %"struct.boost::graph::bfs_visitor_event_not_overridden", align 1
  %tmp21 = alloca %"struct.boost::graph::bfs_visitor_event_not_overridden", align 1
  %agg.tmp22 = alloca %"class.boost::detail::edge_desc_impl", align 4
  %tmp23 = alloca %"struct.boost::graph::bfs_visitor_event_not_overridden", align 1
  %agg.tmp27 = alloca %"class.boost::detail::edge_desc_impl", align 4
  %tmp28 = alloca %"struct.boost::graph::bfs_visitor_event_not_overridden", align 1
  %agg.tmp30 = alloca %"class.boost::detail::edge_desc_impl", align 4
  %tmp31 = alloca %"struct.boost::graph::bfs_visitor_event_not_overridden", align 1
  %tmp37 = alloca %"struct.boost::graph::bfs_visitor_event_not_overridden", align 1
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store i32* %sources_begin, i32** %sources_begin.addr, align 4
  store i32* %sources_end, i32** %sources_end.addr, align 4
  store %"class.boost::queue"* %Q, %"class.boost::queue"** %Q.addr, align 4
  call void @_ZN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS0_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS6_SaIS6_EEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEC1Ev(%"struct.boost::detail::out_edge_iter"* %ei)
  call void @_ZN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS0_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS6_SaIS6_EEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEC1Ev(%"struct.boost::detail::out_edge_iter"* %ei_end)
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %0 = load i32** %sources_begin.addr, align 4
  %1 = load i32** %sources_end.addr, align 4
  %cmp = icmp ne i32* %0, %1
  br i1 %cmp, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %2 = load i32** %sources_begin.addr, align 4
  %3 = load i32* %2, align 4
  store i32 %3, i32* %s, align 4
  %4 = load i32* %s, align 4
  %call = call i32 @_ZN5boost12color_traitsINS_18two_bit_color_typeEE4grayEv()
  call void @_ZN5boost3putINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEEvRKNS_17two_bit_color_mapIT_EENS_15property_traitsIS5_E8key_typeENS_18two_bit_color_typeE(%"struct.boost::two_bit_color_map"* %color, i32 %4, i32 %call)
  %5 = load i32* %s, align 4
  %6 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEE15discover_vertexIjKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEEEENS_5graph32bfs_visitor_event_not_overriddenET_RT0_(%"struct.boost::graph::bfs_visitor_event_not_overridden"* sret %tmp, %"class.boost::bfs_visitor"* %vis, i32 %5, %"class.boost::adjacency_list"* %6)
  %7 = load %"class.boost::queue"** %Q.addr, align 4
  call void @_ZN5boost5queueIjSt5dequeIjSaIjEEE4pushERKj(%"class.boost::queue"* %7, i32* %s)
  br label %for.inc

for.inc:                                          ; preds = %for.body
  %8 = load i32** %sources_begin.addr, align 4
  %incdec.ptr = getelementptr inbounds i32* %8, i32 1
  store i32* %incdec.ptr, i32** %sources_begin.addr, align 4
  br label %for.cond

for.end:                                          ; preds = %for.cond
  br label %while.cond

while.cond:                                       ; preds = %for.end35, %for.end
  %9 = load %"class.boost::queue"** %Q.addr, align 4
  %call1 = call zeroext i1 @_ZNK5boost5queueIjSt5dequeIjSaIjEEE5emptyEv(%"class.boost::queue"* %9)
  %lnot = xor i1 %call1, true
  br i1 %lnot, label %while.body, label %while.end

while.body:                                       ; preds = %while.cond
  %10 = load %"class.boost::queue"** %Q.addr, align 4
  %call3 = call i32* @_ZN5boost5queueIjSt5dequeIjSaIjEEE3topEv(%"class.boost::queue"* %10)
  %11 = load i32* %call3
  store i32 %11, i32* %u, align 4
  %12 = load %"class.boost::queue"** %Q.addr, align 4
  call void @_ZN5boost5queueIjSt5dequeIjSaIjEEE3popEv(%"class.boost::queue"* %12)
  %13 = load i32* %u, align 4
  %14 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEE14examine_vertexIjKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEEEENS_5graph32bfs_visitor_event_not_overriddenET_RT0_(%"struct.boost::graph::bfs_visitor_event_not_overridden"* sret %tmp4, %"class.boost::bfs_visitor"* %vis, i32 %13, %"class.boost::adjacency_list"* %14)
  call void @_ZN5boost6tuples3tieINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESH_EENS0_6detail10tie_mapperIT_T0_vvvvvvvvE4typeERSK_RSL_(%"class.boost::tuples::tuple.34"* sret %tmp5, %"struct.boost::detail::out_edge_iter"* %ei, %"struct.boost::detail::out_edge_iter"* %ei_end)
  %15 = load i32* %u, align 4
  %16 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %17 = bitcast %"class.boost::adjacency_list"* %16 to %"struct.boost::adj_list_helper"*
  call void @_ZN5boost9out_edgesINS_6detail12adj_list_genINS_14adjacency_listINS_4vecSES4_NS_9directedSENS_11no_propertyES6_S6_NS_5listSEEES4_S4_S5_S6_S6_S6_S7_E6configENS_21directed_graph_helperISA_EEEESt4pairINT_17out_edge_iteratorESF_ENSE_17vertex_descriptorERKNS_15adj_list_helperISE_T0_EE(%"struct.std::pair.37"* sret %ref.tmp, i32 %15, %"struct.boost::adj_list_helper"* %17)
  %call6 = call %"class.boost::tuples::tuple.34"* @_ZN5boost6tuples5tupleIRNS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESI_NS0_9null_typeESJ_SJ_SJ_SJ_SJ_SJ_SJ_EaSISH_SH_EERSK_RKSt4pairIT_T0_E(%"class.boost::tuples::tuple.34"* %tmp5, %"struct.std::pair.37"* %ref.tmp)
  br label %for.cond7

for.cond7:                                        ; preds = %for.inc33, %while.body
  %18 = bitcast %"struct.boost::detail::out_edge_iter"* %ei to %"class.boost::iterator_facade.33"*
  %19 = bitcast %"struct.boost::detail::out_edge_iter"* %ei_end to %"class.boost::iterator_facade.33"*
  %call8 = call zeroext i1 @_ZN5boostneINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESF_NS_27random_access_traversal_tagESF_iSG_SF_SH_SF_iEENS1_23enable_if_interoperableIT_T4_NS_3mpl6apply2INS1_12always_bool2ESJ_SK_E4typeEE4typeERKNS_15iterator_facadeISJ_T0_T1_T2_T3_EERKNSS_ISK_T5_T6_T7_T8_EE(%"class.boost::iterator_facade.33"* %18, %"class.boost::iterator_facade.33"* %19)
  br i1 %call8, label %for.body9, label %for.end35

for.body9:                                        ; preds = %for.cond7
  %20 = bitcast %"struct.boost::detail::out_edge_iter"* %ei to %"class.boost::iterator_facade.33"*
  call void @_ZNK5boost15iterator_facadeINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESF_NS_27random_access_traversal_tagESF_iEdeEv(%"class.boost::detail::edge_desc_impl"* sret %ref.tmp11, %"class.boost::iterator_facade.33"* %20)
  %21 = bitcast %"class.boost::detail::edge_desc_impl"* %ref.tmp11 to %"struct.boost::detail::edge_base"*
  %22 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %call12 = call i32 @_ZN5boost6targetINS_12directed_tagEjNS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEET0_RKNS_6detail9edge_baseIT_S6_EERKNS_14adjacency_listIT1_T2_T3_T4_T5_T6_T7_EE(%"struct.boost::detail::edge_base"* %21, %"class.boost::adjacency_list"* %22)
  store i32 %call12, i32* %v, align 4
  %23 = bitcast %"struct.boost::detail::out_edge_iter"* %ei to %"class.boost::iterator_facade.33"*
  call void @_ZNK5boost15iterator_facadeINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESF_NS_27random_access_traversal_tagESF_iEdeEv(%"class.boost::detail::edge_desc_impl"* sret %agg.tmp, %"class.boost::iterator_facade.33"* %23)
  %24 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEE12examine_edgeINS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESF_NS_9directedSENS_11no_propertyESH_SH_NS_5listSEEEEENS_5graph32bfs_visitor_event_not_overriddenET_RT0_(%"struct.boost::graph::bfs_visitor_event_not_overridden"* sret %tmp13, %"class.boost::bfs_visitor"* %vis, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %24)
  %25 = load i32* %v, align 4
  %call15 = call i32 @_ZN5boost3getINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEENS_18two_bit_color_typeERKNS_17two_bit_color_mapIT_EENS_15property_traitsIS6_E8key_typeE(%"struct.boost::two_bit_color_map"* %color, i32 %25)
  store i32 %call15, i32* %v_color, align 4
  %26 = load i32* %v_color, align 4
  %call16 = call i32 @_ZN5boost12color_traitsINS_18two_bit_color_typeEE5whiteEv()
  %cmp17 = icmp eq i32 %26, %call16
  br i1 %cmp17, label %if.then, label %if.else

if.then:                                          ; preds = %for.body9
  %27 = bitcast %"struct.boost::detail::out_edge_iter"* %ei to %"class.boost::iterator_facade.33"*
  call void @_ZNK5boost15iterator_facadeINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESF_NS_27random_access_traversal_tagESF_iEdeEv(%"class.boost::detail::edge_desc_impl"* sret %agg.tmp18, %"class.boost::iterator_facade.33"* %27)
  %28 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEE9tree_edgeINS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESF_NS_9directedSENS_11no_propertyESH_SH_NS_5listSEEEEENS_5graph32bfs_visitor_event_not_overriddenET_RT0_(%"struct.boost::graph::bfs_visitor_event_not_overridden"* sret %tmp19, %"class.boost::bfs_visitor"* %vis, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp18, %"class.boost::adjacency_list"* %28)
  %29 = load i32* %v, align 4
  %call20 = call i32 @_ZN5boost12color_traitsINS_18two_bit_color_typeEE4grayEv()
  call void @_ZN5boost3putINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEEvRKNS_17two_bit_color_mapIT_EENS_15property_traitsIS5_E8key_typeENS_18two_bit_color_typeE(%"struct.boost::two_bit_color_map"* %color, i32 %29, i32 %call20)
  %30 = load i32* %v, align 4
  %31 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEE15discover_vertexIjKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEEEENS_5graph32bfs_visitor_event_not_overriddenET_RT0_(%"struct.boost::graph::bfs_visitor_event_not_overridden"* sret %tmp21, %"class.boost::bfs_visitor"* %vis, i32 %30, %"class.boost::adjacency_list"* %31)
  %32 = load %"class.boost::queue"** %Q.addr, align 4
  call void @_ZN5boost5queueIjSt5dequeIjSaIjEEE4pushERKj(%"class.boost::queue"* %32, i32* %v)
  br label %if.end32

if.else:                                          ; preds = %for.body9
  %33 = bitcast %"struct.boost::detail::out_edge_iter"* %ei to %"class.boost::iterator_facade.33"*
  call void @_ZNK5boost15iterator_facadeINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESF_NS_27random_access_traversal_tagESF_iEdeEv(%"class.boost::detail::edge_desc_impl"* sret %agg.tmp22, %"class.boost::iterator_facade.33"* %33)
  %34 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEE13non_tree_edgeINS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESF_NS_9directedSENS_11no_propertyESH_SH_NS_5listSEEEEENS_5graph32bfs_visitor_event_not_overriddenET_RT0_(%"struct.boost::graph::bfs_visitor_event_not_overridden"* sret %tmp23, %"class.boost::bfs_visitor"* %vis, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp22, %"class.boost::adjacency_list"* %34)
  %35 = load i32* %v_color, align 4
  %call24 = call i32 @_ZN5boost12color_traitsINS_18two_bit_color_typeEE4grayEv()
  %cmp25 = icmp eq i32 %35, %call24
  br i1 %cmp25, label %if.then26, label %if.else29

if.then26:                                        ; preds = %if.else
  %36 = bitcast %"struct.boost::detail::out_edge_iter"* %ei to %"class.boost::iterator_facade.33"*
  call void @_ZNK5boost15iterator_facadeINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESF_NS_27random_access_traversal_tagESF_iEdeEv(%"class.boost::detail::edge_desc_impl"* sret %agg.tmp27, %"class.boost::iterator_facade.33"* %36)
  %37 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEE11gray_targetINS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESF_NS_9directedSENS_11no_propertyESH_SH_NS_5listSEEEEENS_5graph32bfs_visitor_event_not_overriddenET_RT0_(%"struct.boost::graph::bfs_visitor_event_not_overridden"* sret %tmp28, %"class.boost::bfs_visitor"* %vis, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp27, %"class.boost::adjacency_list"* %37)
  br label %if.end

if.else29:                                        ; preds = %if.else
  %38 = bitcast %"struct.boost::detail::out_edge_iter"* %ei to %"class.boost::iterator_facade.33"*
  call void @_ZNK5boost15iterator_facadeINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESF_NS_27random_access_traversal_tagESF_iEdeEv(%"class.boost::detail::edge_desc_impl"* sret %agg.tmp30, %"class.boost::iterator_facade.33"* %38)
  %39 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEE12black_targetINS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESF_NS_9directedSENS_11no_propertyESH_SH_NS_5listSEEEEENS_5graph32bfs_visitor_event_not_overriddenET_RT0_(%"struct.boost::graph::bfs_visitor_event_not_overridden"* sret %tmp31, %"class.boost::bfs_visitor"* %vis, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp30, %"class.boost::adjacency_list"* %39)
  br label %if.end

if.end:                                           ; preds = %if.else29, %if.then26
  br label %if.end32

if.end32:                                         ; preds = %if.end, %if.then
  br label %for.inc33

for.inc33:                                        ; preds = %if.end32
  %40 = bitcast %"struct.boost::detail::out_edge_iter"* %ei to %"class.boost::iterator_facade.33"*
  %call34 = call %"struct.boost::detail::out_edge_iter"* @_ZN5boost15iterator_facadeINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESF_NS_27random_access_traversal_tagESF_iEppEv(%"class.boost::iterator_facade.33"* %40)
  br label %for.cond7

for.end35:                                        ; preds = %for.cond7
  %41 = load i32* %u, align 4
  %call36 = call i32 @_ZN5boost12color_traitsINS_18two_bit_color_typeEE5blackEv()
  call void @_ZN5boost3putINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEEvRKNS_17two_bit_color_mapIT_EENS_15property_traitsIS5_E8key_typeENS_18two_bit_color_typeE(%"struct.boost::two_bit_color_map"* %color, i32 %41, i32 %call36)
  %42 = load i32* %u, align 4
  %43 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEE13finish_vertexIjKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEEEENS_5graph32bfs_visitor_event_not_overriddenET_RT0_(%"struct.boost::graph::bfs_visitor_event_not_overridden"* sret %tmp37, %"class.boost::bfs_visitor"* %vis, i32 %42, %"class.boost::adjacency_list"* %43)
  br label %while.cond

while.end:                                        ; preds = %while.cond
  ret void
}

define linkonce_odr void @_ZN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS0_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS6_SaIS6_EEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEC1Ev(%"struct.boost::detail::out_edge_iter"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  store %"struct.boost::detail::out_edge_iter"* %this, %"struct.boost::detail::out_edge_iter"** %this.addr, align 4
  %this1 = load %"struct.boost::detail::out_edge_iter"** %this.addr
  call void @_ZN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS0_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS6_SaIS6_EEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEC2Ev(%"struct.boost::detail::out_edge_iter"* %this1)
  ret void
}

define linkonce_odr i32 @_ZN5boost12color_traitsINS_18two_bit_color_typeEE4grayEv() nounwind align 2 {
entry:
  ret i32 1
}

define linkonce_odr void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEE15discover_vertexIjKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEEEENS_5graph32bfs_visitor_event_not_overriddenET_RT0_(%"struct.boost::graph::bfs_visitor_event_not_overridden"* noalias sret %agg.result, %"class.boost::bfs_visitor"* %this, i32 %u, %"class.boost::adjacency_list"* %g) align 2 {
entry:
  %this.addr = alloca %"class.boost::bfs_visitor"*, align 4
  %u.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %agg.tmp = alloca %"struct.boost::on_discover_vertex", align 1
  store %"class.boost::bfs_visitor"* %this, %"class.boost::bfs_visitor"** %this.addr, align 4
  store i32 %u, i32* %u.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"class.boost::bfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::bfs_visitor"* %this1, i32 0, i32 0
  %0 = load i32* %u.addr, align 4
  %1 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEES1_INS_16on_non_tree_edgeEEjKNS_14adjacency_listINS_4vecSES7_NS_9directedSENS_11no_propertyES9_S9_NS_5listSEEENS_18on_discover_vertexEEEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.18"* %m_vis, i32 %0, %"class.boost::adjacency_list"* %1)
  ret void
}

define linkonce_odr void @_ZN5boost5queueIjSt5dequeIjSaIjEEE4pushERKj(%"class.boost::queue"* %this, i32* %__x) align 2 {
entry:
  %this.addr = alloca %"class.boost::queue"*, align 4
  %__x.addr = alloca i32*, align 4
  store %"class.boost::queue"* %this, %"class.boost::queue"** %this.addr, align 4
  store i32* %__x, i32** %__x.addr, align 4
  %this1 = load %"class.boost::queue"** %this.addr
  %c = getelementptr inbounds %"class.boost::queue"* %this1, i32 0, i32 0
  %0 = load i32** %__x.addr, align 4
  call void @_ZNSt5dequeIjSaIjEE9push_backERKj(%"class.std::deque"* %c, i32* %0)
  ret void
}

define linkonce_odr zeroext i1 @_ZNK5boost5queueIjSt5dequeIjSaIjEEE5emptyEv(%"class.boost::queue"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::queue"*, align 4
  store %"class.boost::queue"* %this, %"class.boost::queue"** %this.addr, align 4
  %this1 = load %"class.boost::queue"** %this.addr
  %c = getelementptr inbounds %"class.boost::queue"* %this1, i32 0, i32 0
  %call = call zeroext i1 @_ZNKSt5dequeIjSaIjEE5emptyEv(%"class.std::deque"* %c)
  ret i1 %call
}

define linkonce_odr i32* @_ZN5boost5queueIjSt5dequeIjSaIjEEE3topEv(%"class.boost::queue"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::queue"*, align 4
  store %"class.boost::queue"* %this, %"class.boost::queue"** %this.addr, align 4
  %this1 = load %"class.boost::queue"** %this.addr
  %c = getelementptr inbounds %"class.boost::queue"* %this1, i32 0, i32 0
  %call = call i32* @_ZNSt5dequeIjSaIjEE5frontEv(%"class.std::deque"* %c)
  ret i32* %call
}

define linkonce_odr void @_ZN5boost5queueIjSt5dequeIjSaIjEEE3popEv(%"class.boost::queue"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::queue"*, align 4
  store %"class.boost::queue"* %this, %"class.boost::queue"** %this.addr, align 4
  %this1 = load %"class.boost::queue"** %this.addr
  %c = getelementptr inbounds %"class.boost::queue"* %this1, i32 0, i32 0
  call void @_ZNSt5dequeIjSaIjEE9pop_frontEv(%"class.std::deque"* %c)
  ret void
}

define linkonce_odr void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEE14examine_vertexIjKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEEEENS_5graph32bfs_visitor_event_not_overriddenET_RT0_(%"struct.boost::graph::bfs_visitor_event_not_overridden"* noalias sret %agg.result, %"class.boost::bfs_visitor"* %this, i32 %u, %"class.boost::adjacency_list"* %g) align 2 {
entry:
  %this.addr = alloca %"class.boost::bfs_visitor"*, align 4
  %u.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %agg.tmp = alloca %"struct.boost::on_examine_vertex", align 1
  store %"class.boost::bfs_visitor"* %this, %"class.boost::bfs_visitor"** %this.addr, align 4
  store i32 %u, i32* %u.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"class.boost::bfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::bfs_visitor"* %this1, i32 0, i32 0
  %0 = load i32* %u.addr, align 4
  %1 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEES1_INS_16on_non_tree_edgeEEjKNS_14adjacency_listINS_4vecSES7_NS_9directedSENS_11no_propertyES9_S9_NS_5listSEEENS_17on_examine_vertexEEEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.18"* %m_vis, i32 %0, %"class.boost::adjacency_list"* %1)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples3tieINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESH_EENS0_6detail10tie_mapperIT_T0_vvvvvvvvE4typeERSK_RSL_(%"class.boost::tuples::tuple.34"* noalias sret %agg.result, %"struct.boost::detail::out_edge_iter"* %t0, %"struct.boost::detail::out_edge_iter"* %t1) inlinehint {
entry:
  %t0.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  %t1.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  store %"struct.boost::detail::out_edge_iter"* %t0, %"struct.boost::detail::out_edge_iter"** %t0.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %t1, %"struct.boost::detail::out_edge_iter"** %t1.addr, align 4
  %0 = load %"struct.boost::detail::out_edge_iter"** %t0.addr, align 4
  %1 = load %"struct.boost::detail::out_edge_iter"** %t1.addr, align 4
  call void @_ZN5boost6tuples5tupleIRNS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESI_NS0_9null_typeESJ_SJ_SJ_SJ_SJ_SJ_SJ_EC1ESI_SI_(%"class.boost::tuples::tuple.34"* %agg.result, %"struct.boost::detail::out_edge_iter"* %0, %"struct.boost::detail::out_edge_iter"* %1)
  ret void
}

define linkonce_odr %"class.boost::tuples::tuple.34"* @_ZN5boost6tuples5tupleIRNS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESI_NS0_9null_typeESJ_SJ_SJ_SJ_SJ_SJ_SJ_EaSISH_SH_EERSK_RKSt4pairIT_T0_E(%"class.boost::tuples::tuple.34"* %this, %"struct.std::pair.37"* %k) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::tuples::tuple.34"*, align 4
  %k.addr = alloca %"struct.std::pair.37"*, align 4
  store %"class.boost::tuples::tuple.34"* %this, %"class.boost::tuples::tuple.34"** %this.addr, align 4
  store %"struct.std::pair.37"* %k, %"struct.std::pair.37"** %k.addr, align 4
  %this1 = load %"class.boost::tuples::tuple.34"** %this.addr
  %0 = bitcast %"class.boost::tuples::tuple.34"* %this1 to %"struct.boost::tuples::cons.35"*
  %head = getelementptr inbounds %"struct.boost::tuples::cons.35"* %0, i32 0, i32 0
  %ref = load %"struct.boost::detail::out_edge_iter"** %head, align 4
  %1 = load %"struct.std::pair.37"** %k.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.37"* %1, i32 0, i32 0
  %2 = bitcast %"struct.boost::detail::out_edge_iter"* %ref to i8*
  %3 = bitcast %"struct.boost::detail::out_edge_iter"* %first to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 8, i32 4, i1 false)
  %4 = bitcast %"class.boost::tuples::tuple.34"* %this1 to %"struct.boost::tuples::cons.35"*
  %tail = getelementptr inbounds %"struct.boost::tuples::cons.35"* %4, i32 0, i32 1
  %head2 = getelementptr inbounds %"struct.boost::tuples::cons.36"* %tail, i32 0, i32 0
  %ref3 = load %"struct.boost::detail::out_edge_iter"** %head2, align 4
  %5 = load %"struct.std::pair.37"** %k.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.37"* %5, i32 0, i32 1
  %6 = bitcast %"struct.boost::detail::out_edge_iter"* %ref3 to i8*
  %7 = bitcast %"struct.boost::detail::out_edge_iter"* %second to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %6, i8* %7, i32 8, i32 4, i1 false)
  ret %"class.boost::tuples::tuple.34"* %this1
}

define linkonce_odr void @_ZN5boost9out_edgesINS_6detail12adj_list_genINS_14adjacency_listINS_4vecSES4_NS_9directedSENS_11no_propertyES6_S6_NS_5listSEEES4_S4_S5_S6_S6_S6_S7_E6configENS_21directed_graph_helperISA_EEEESt4pairINT_17out_edge_iteratorESF_ENSE_17vertex_descriptorERKNS_15adj_list_helperISE_T0_EE(%"struct.std::pair.37"* noalias sret %agg.result, i32 %u, %"struct.boost::adj_list_helper"* %g_) inlinehint {
entry:
  %u.addr = alloca i32, align 4
  %g_.addr = alloca %"struct.boost::adj_list_helper"*, align 4
  %cg = alloca %"class.boost::adjacency_list"*, align 4
  %g = alloca %"class.boost::adjacency_list"*, align 4
  %agg.tmp = alloca %"struct.boost::detail::out_edge_iter", align 4
  %ref.tmp = alloca %"class.__gnu_cxx::__normal_iterator", align 4
  %agg.tmp1 = alloca %"struct.boost::detail::out_edge_iter", align 4
  %ref.tmp2 = alloca %"class.__gnu_cxx::__normal_iterator", align 4
  store i32 %u, i32* %u.addr, align 4
  store %"struct.boost::adj_list_helper"* %g_, %"struct.boost::adj_list_helper"** %g_.addr, align 4
  %0 = load %"struct.boost::adj_list_helper"** %g_.addr, align 4
  %1 = bitcast %"struct.boost::adj_list_helper"* %0 to %"class.boost::adjacency_list"*
  store %"class.boost::adjacency_list"* %1, %"class.boost::adjacency_list"** %cg, align 4
  %2 = load %"class.boost::adjacency_list"** %cg, align 4
  store %"class.boost::adjacency_list"* %2, %"class.boost::adjacency_list"** %g, align 4
  %3 = load %"class.boost::adjacency_list"** %g, align 4
  %4 = bitcast %"class.boost::adjacency_list"* %3 to %"class.boost::vec_adj_list_impl"*
  %5 = load i32* %u.addr, align 4
  %call = call %"class.std::vector.21"* @_ZN5boost17vec_adj_list_implINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_6detail12adj_list_genIS6_S2_S2_S3_S4_S4_S4_S5_E6configENS_21directed_graph_helperISA_EEE13out_edge_listEj(%"class.boost::vec_adj_list_impl"* %4, i32 %5)
  call void @_ZNSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE5beginEv(%"class.__gnu_cxx::__normal_iterator"* sret %ref.tmp, %"class.std::vector.21"* %call)
  call void @_ZN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS0_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS6_SaIS6_EEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEC1ERKSB_RKj(%"struct.boost::detail::out_edge_iter"* %agg.tmp, %"class.__gnu_cxx::__normal_iterator"* %ref.tmp, i32* %u.addr)
  %6 = load %"class.boost::adjacency_list"** %g, align 4
  %7 = bitcast %"class.boost::adjacency_list"* %6 to %"class.boost::vec_adj_list_impl"*
  %8 = load i32* %u.addr, align 4
  %call3 = call %"class.std::vector.21"* @_ZN5boost17vec_adj_list_implINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_6detail12adj_list_genIS6_S2_S2_S3_S4_S4_S4_S5_E6configENS_21directed_graph_helperISA_EEE13out_edge_listEj(%"class.boost::vec_adj_list_impl"* %7, i32 %8)
  call void @_ZNSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE3endEv(%"class.__gnu_cxx::__normal_iterator"* sret %ref.tmp2, %"class.std::vector.21"* %call3)
  call void @_ZN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS0_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS6_SaIS6_EEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEC1ERKSB_RKj(%"struct.boost::detail::out_edge_iter"* %agg.tmp1, %"class.__gnu_cxx::__normal_iterator"* %ref.tmp2, i32* %u.addr)
  call void @_ZSt9make_pairIN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS0_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEESG_ESt4pairIT_T0_ESI_SJ_(%"struct.std::pair.37"* sret %agg.result, %"struct.boost::detail::out_edge_iter"* byval align 4 %agg.tmp, %"struct.boost::detail::out_edge_iter"* byval align 4 %agg.tmp1)
  ret void
}

define linkonce_odr zeroext i1 @_ZN5boostneINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESF_NS_27random_access_traversal_tagESF_iSG_SF_SH_SF_iEENS1_23enable_if_interoperableIT_T4_NS_3mpl6apply2INS1_12always_bool2ESJ_SK_E4typeEE4typeERKNS_15iterator_facadeISJ_T0_T1_T2_T3_EERKNSS_ISK_T5_T6_T7_T8_EE(%"class.boost::iterator_facade.33"* %lhs, %"class.boost::iterator_facade.33"* %rhs) inlinehint {
entry:
  %lhs.addr = alloca %"class.boost::iterator_facade.33"*, align 4
  %rhs.addr = alloca %"class.boost::iterator_facade.33"*, align 4
  %agg.tmp = alloca %"struct.mpl_::bool_", align 1
  %ref.tmp = alloca %"struct.boost::is_convertible", align 1
  store %"class.boost::iterator_facade.33"* %lhs, %"class.boost::iterator_facade.33"** %lhs.addr, align 4
  store %"class.boost::iterator_facade.33"* %rhs, %"class.boost::iterator_facade.33"** %rhs.addr, align 4
  %0 = load %"class.boost::iterator_facade.33"** %lhs.addr, align 4
  %1 = bitcast %"class.boost::iterator_facade.33"* %0 to %"struct.boost::detail::out_edge_iter"*
  %2 = load %"class.boost::iterator_facade.33"** %rhs.addr, align 4
  %3 = bitcast %"class.boost::iterator_facade.33"* %2 to %"struct.boost::detail::out_edge_iter"*
  %4 = bitcast %"struct.boost::is_convertible"* %ref.tmp to %"struct.mpl_::bool_"*
  %call = call zeroext i1 @_ZN5boost20iterator_core_access5equalINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESH_EEbRKT_RKT0_N4mpl_5bool_ILb1EEE(%"struct.boost::detail::out_edge_iter"* %1, %"struct.boost::detail::out_edge_iter"* %3)
  %lnot = xor i1 %call, true
  ret i1 %lnot
}

define linkonce_odr i32 @_ZN5boost6targetINS_12directed_tagEjNS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEET0_RKNS_6detail9edge_baseIT_S6_EERKNS_14adjacency_listIT1_T2_T3_T4_T5_T6_T7_EE(%"struct.boost::detail::edge_base"* %e, %"class.boost::adjacency_list"*) nounwind inlinehint {
entry:
  %e.addr = alloca %"struct.boost::detail::edge_base"*, align 4
  %.addr = alloca %"class.boost::adjacency_list"*, align 4
  store %"struct.boost::detail::edge_base"* %e, %"struct.boost::detail::edge_base"** %e.addr, align 4
  store %"class.boost::adjacency_list"* %0, %"class.boost::adjacency_list"** %.addr, align 4
  %1 = load %"struct.boost::detail::edge_base"** %e.addr, align 4
  %m_target = getelementptr inbounds %"struct.boost::detail::edge_base"* %1, i32 0, i32 1
  %2 = load i32* %m_target, align 4
  ret i32 %2
}

define linkonce_odr void @_ZNK5boost15iterator_facadeINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESF_NS_27random_access_traversal_tagESF_iEdeEv(%"class.boost::detail::edge_desc_impl"* noalias sret %agg.result, %"class.boost::iterator_facade.33"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_facade.33"*, align 4
  store %"class.boost::iterator_facade.33"* %this, %"class.boost::iterator_facade.33"** %this.addr, align 4
  %this1 = load %"class.boost::iterator_facade.33"** %this.addr
  %call = call %"struct.boost::detail::out_edge_iter"* @_ZNK5boost15iterator_facadeINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESF_NS_27random_access_traversal_tagESF_iE7derivedEv(%"class.boost::iterator_facade.33"* %this1)
  call void @_ZN5boost20iterator_core_access11dereferenceINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEEEENT_9referenceERKSI_(%"class.boost::detail::edge_desc_impl"* sret %agg.result, %"struct.boost::detail::out_edge_iter"* %call)
  ret void
}

define linkonce_odr void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEE12examine_edgeINS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESF_NS_9directedSENS_11no_propertyESH_SH_NS_5listSEEEEENS_5graph32bfs_visitor_event_not_overriddenET_RT0_(%"struct.boost::graph::bfs_visitor_event_not_overridden"* noalias sret %agg.result, %"class.boost::bfs_visitor"* %this, %"class.boost::detail::edge_desc_impl"* byval align 4 %e, %"class.boost::adjacency_list"* %g) align 2 {
entry:
  %this.addr = alloca %"class.boost::bfs_visitor"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp2 = alloca %"struct.boost::on_examine_edge", align 1
  store %"class.boost::bfs_visitor"* %this, %"class.boost::bfs_visitor"** %this.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"class.boost::bfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::bfs_visitor"* %this1, i32 0, i32 0
  %0 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %1 = bitcast %"class.boost::detail::edge_desc_impl"* %e to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 12, i32 4, i1 false)
  %2 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEES1_INS_16on_non_tree_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEENS_15on_examine_edgeEEEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.18"* %m_vis, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %2)
  ret void
}

define linkonce_odr i32 @_ZN5boost3getINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEENS_18two_bit_color_typeERKNS_17two_bit_color_mapIT_EENS_15property_traitsIS6_E8key_typeE(%"struct.boost::two_bit_color_map"* %pm, i32 %key) inlinehint {
entry:
  %pm.addr = alloca %"struct.boost::two_bit_color_map"*, align 4
  %key.addr = alloca i32, align 4
  %i = alloca i32, align 4
  %byte_num = alloca i32, align 4
  %bit_position = alloca i32, align 4
  store %"struct.boost::two_bit_color_map"* %pm, %"struct.boost::two_bit_color_map"** %pm.addr, align 4
  store i32 %key, i32* %key.addr, align 4
  %0 = load %"struct.boost::two_bit_color_map"** %pm.addr, align 4
  %index = getelementptr inbounds %"struct.boost::two_bit_color_map"* %0, i32 0, i32 1
  %1 = bitcast %"struct.boost::vec_adj_list_vertex_id_map"* %index to %"struct.boost::put_get_helper"*
  %call = call i32 @_ZN5boost3getINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjjEET0_RKNS_14put_get_helperIS4_T_EERKT1_(%"struct.boost::put_get_helper"* %1, i32* %key.addr)
  store i32 %call, i32* %i, align 4
  %2 = load i32* %i, align 4
  %3 = load %"struct.boost::two_bit_color_map"** %pm.addr, align 4
  %n = getelementptr inbounds %"struct.boost::two_bit_color_map"* %3, i32 0, i32 0
  %4 = load i32* %n, align 4
  %cmp = icmp ult i32 %2, %4
  br i1 %cmp, label %cond.true, label %cond.false

cond.true:                                        ; preds = %entry
  br label %cond.end

cond.false:                                       ; preds = %entry
  call void @__assert_fail(i8* getelementptr inbounds ([22 x i8]* @.str9, i32 0, i32 0), i8* getelementptr inbounds ([60 x i8]* @.str10, i32 0, i32 0), i32 72, i8* getelementptr inbounds ([201 x i8]* @__PRETTY_FUNCTION__._ZN5boost3getINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEENS_18two_bit_color_typeERKNS_17two_bit_color_mapIT_EENS_15property_traitsIS6_E8key_typeE, i32 0, i32 0)) noreturn nounwind
  unreachable
                                                  ; No predecessors!
  br label %cond.end

cond.end:                                         ; preds = %5, %cond.true
  %6 = load i32* %i, align 4
  %div = udiv i32 %6, 4
  store i32 %div, i32* %byte_num, align 4
  %7 = load i32* %i, align 4
  %rem = urem i32 %7, 4
  %mul = mul i32 %rem, 2
  store i32 %mul, i32* %bit_position, align 4
  %8 = load i32* %byte_num, align 4
  %9 = load %"struct.boost::two_bit_color_map"** %pm.addr, align 4
  %data = getelementptr inbounds %"struct.boost::two_bit_color_map"* %9, i32 0, i32 2
  %call1 = call i8* @_ZNK5boost12shared_arrayIhE3getEv(%"class.boost::shared_array"* %data)
  %arrayidx = getelementptr inbounds i8* %call1, i32 %8
  %10 = load i8* %arrayidx, align 1
  %conv = zext i8 %10 to i32
  %11 = load i32* %bit_position, align 4
  %shr = ashr i32 %conv, %11
  %and = and i32 %shr, 3
  ret i32 %and
}

define linkonce_odr void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEE9tree_edgeINS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESF_NS_9directedSENS_11no_propertyESH_SH_NS_5listSEEEEENS_5graph32bfs_visitor_event_not_overriddenET_RT0_(%"struct.boost::graph::bfs_visitor_event_not_overridden"* noalias sret %agg.result, %"class.boost::bfs_visitor"* %this, %"class.boost::detail::edge_desc_impl"* byval align 4 %e, %"class.boost::adjacency_list"* %g) align 2 {
entry:
  %this.addr = alloca %"class.boost::bfs_visitor"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp2 = alloca %"struct.boost::on_tree_edge", align 1
  store %"class.boost::bfs_visitor"* %this, %"class.boost::bfs_visitor"** %this.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"class.boost::bfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::bfs_visitor"* %this1, i32 0, i32 0
  %0 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %1 = bitcast %"class.boost::detail::edge_desc_impl"* %e to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 12, i32 4, i1 false)
  %2 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEES1_INS_16on_non_tree_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEES2_EEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.18"* %m_vis, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %2)
  ret void
}

define linkonce_odr void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEE13non_tree_edgeINS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESF_NS_9directedSENS_11no_propertyESH_SH_NS_5listSEEEEENS_5graph32bfs_visitor_event_not_overriddenET_RT0_(%"struct.boost::graph::bfs_visitor_event_not_overridden"* noalias sret %agg.result, %"class.boost::bfs_visitor"* %this, %"class.boost::detail::edge_desc_impl"* byval align 4 %e, %"class.boost::adjacency_list"* %g) align 2 {
entry:
  %this.addr = alloca %"class.boost::bfs_visitor"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp2 = alloca %"struct.boost::on_non_tree_edge", align 1
  store %"class.boost::bfs_visitor"* %this, %"class.boost::bfs_visitor"** %this.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"class.boost::bfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::bfs_visitor"* %this1, i32 0, i32 0
  %0 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %1 = bitcast %"class.boost::detail::edge_desc_impl"* %e to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 12, i32 4, i1 false)
  %2 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEES1_INS_16on_non_tree_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEES4_EEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.18"* %m_vis, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %2)
  ret void
}

define linkonce_odr void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEE11gray_targetINS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESF_NS_9directedSENS_11no_propertyESH_SH_NS_5listSEEEEENS_5graph32bfs_visitor_event_not_overriddenET_RT0_(%"struct.boost::graph::bfs_visitor_event_not_overridden"* noalias sret %agg.result, %"class.boost::bfs_visitor"* %this, %"class.boost::detail::edge_desc_impl"* byval align 4 %e, %"class.boost::adjacency_list"* %g) align 2 {
entry:
  %this.addr = alloca %"class.boost::bfs_visitor"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp2 = alloca %"struct.boost::on_gray_target", align 1
  store %"class.boost::bfs_visitor"* %this, %"class.boost::bfs_visitor"** %this.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"class.boost::bfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::bfs_visitor"* %this1, i32 0, i32 0
  %0 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %1 = bitcast %"class.boost::detail::edge_desc_impl"* %e to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 12, i32 4, i1 false)
  %2 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEES1_INS_16on_non_tree_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEENS_14on_gray_targetEEEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.18"* %m_vis, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %2)
  ret void
}

define linkonce_odr void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEE12black_targetINS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESF_NS_9directedSENS_11no_propertyESH_SH_NS_5listSEEEEENS_5graph32bfs_visitor_event_not_overriddenET_RT0_(%"struct.boost::graph::bfs_visitor_event_not_overridden"* noalias sret %agg.result, %"class.boost::bfs_visitor"* %this, %"class.boost::detail::edge_desc_impl"* byval align 4 %e, %"class.boost::adjacency_list"* %g) align 2 {
entry:
  %this.addr = alloca %"class.boost::bfs_visitor"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp2 = alloca %"struct.boost::on_black_target", align 1
  store %"class.boost::bfs_visitor"* %this, %"class.boost::bfs_visitor"** %this.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"class.boost::bfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::bfs_visitor"* %this1, i32 0, i32 0
  %0 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %1 = bitcast %"class.boost::detail::edge_desc_impl"* %e to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 12, i32 4, i1 false)
  %2 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEES1_INS_16on_non_tree_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEENS_15on_black_targetEEEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.18"* %m_vis, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %2)
  ret void
}

define linkonce_odr %"struct.boost::detail::out_edge_iter"* @_ZN5boost15iterator_facadeINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESF_NS_27random_access_traversal_tagESF_iEppEv(%"class.boost::iterator_facade.33"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_facade.33"*, align 4
  store %"class.boost::iterator_facade.33"* %this, %"class.boost::iterator_facade.33"** %this.addr, align 4
  %this1 = load %"class.boost::iterator_facade.33"** %this.addr
  %call = call %"struct.boost::detail::out_edge_iter"* @_ZN5boost15iterator_facadeINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESF_NS_27random_access_traversal_tagESF_iE7derivedEv(%"class.boost::iterator_facade.33"* %this1)
  call void @_ZN5boost20iterator_core_access9incrementINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEEEEvRT_(%"struct.boost::detail::out_edge_iter"* %call)
  %call2 = call %"struct.boost::detail::out_edge_iter"* @_ZN5boost15iterator_facadeINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESF_NS_27random_access_traversal_tagESF_iE7derivedEv(%"class.boost::iterator_facade.33"* %this1)
  ret %"struct.boost::detail::out_edge_iter"* %call2
}

define linkonce_odr i32 @_ZN5boost12color_traitsINS_18two_bit_color_typeEE5blackEv() nounwind align 2 {
entry:
  ret i32 3
}

define linkonce_odr void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEE13finish_vertexIjKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEEEENS_5graph32bfs_visitor_event_not_overriddenET_RT0_(%"struct.boost::graph::bfs_visitor_event_not_overridden"* noalias sret %agg.result, %"class.boost::bfs_visitor"* %this, i32 %u, %"class.boost::adjacency_list"* %g) align 2 {
entry:
  %this.addr = alloca %"class.boost::bfs_visitor"*, align 4
  %u.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %agg.tmp = alloca %"struct.boost::on_finish_vertex", align 1
  store %"class.boost::bfs_visitor"* %this, %"class.boost::bfs_visitor"** %this.addr, align 4
  store i32 %u, i32* %u.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"class.boost::bfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::bfs_visitor"* %this1, i32 0, i32 0
  %0 = load i32* %u.addr, align 4
  %1 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEES1_INS_16on_non_tree_edgeEEjKNS_14adjacency_listINS_4vecSES7_NS_9directedSENS_11no_propertyES9_S9_NS_5listSEEENS_16on_finish_vertexEEEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.18"* %m_vis, i32 %0, %"class.boost::adjacency_list"* %1)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEES1_INS_16on_non_tree_edgeEEjKNS_14adjacency_listINS_4vecSES7_NS_9directedSENS_11no_propertyES9_S9_NS_5listSEEENS_16on_finish_vertexEEEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.18"* %vlist, i32 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %vlist.addr = alloca %"struct.std::pair.18"*, align 4
  %x.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tag = alloca %"struct.boost::on_finish_vertex", align 1
  %agg.tmp = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  %agg.tmp1 = alloca %"struct.boost::on_finish_vertex", align 1
  store %"struct.std::pair.18"* %vlist, %"struct.std::pair.18"** %vlist.addr, align 4
  store i32 %x, i32* %x.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %0 = load %"struct.std::pair.18"** %vlist.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.18"* %0, i32 0, i32 0
  %1 = load i32* %x.addr, align 4
  %2 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %3 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_tree_edgeEEjKNS_14adjacency_listINS_4vecSES6_NS_9directedSENS_11no_propertyES8_S8_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer* %first, i32 %1, %"class.boost::adjacency_list"* %2)
  %4 = load %"struct.std::pair.18"** %vlist.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.18"* %4, i32 0, i32 1
  %5 = load i32* %x.addr, align 4
  %6 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_16on_non_tree_edgeEEjKNS_14adjacency_listINS_4vecSES5_NS_9directedSENS_11no_propertyES7_S7_NS_5listSEEENS_16on_finish_vertexEEEvRT_T0_RT1_T2_(%struct.edge_printer.19* %second, i32 %5, %"class.boost::adjacency_list"* %6)
  ret void
}

define linkonce_odr void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_tree_edgeEEjKNS_14adjacency_listINS_4vecSES6_NS_9directedSENS_11no_propertyES8_S8_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer*, i32, %"class.boost::adjacency_list"*) nounwind inlinehint {
entry:
  %.addr = alloca %struct.edge_printer*, align 4
  %.addr1 = alloca i32, align 4
  %.addr2 = alloca %"class.boost::adjacency_list"*, align 4
  %3 = alloca %"struct.mpl_::bool_.38", align 1
  store %struct.edge_printer* %0, %struct.edge_printer** %.addr, align 4
  store i32 %1, i32* %.addr1, align 4
  store %"class.boost::adjacency_list"* %2, %"class.boost::adjacency_list"** %.addr2, align 4
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_16on_non_tree_edgeEEjKNS_14adjacency_listINS_4vecSES5_NS_9directedSENS_11no_propertyES7_S7_NS_5listSEEENS_16on_finish_vertexEEEvRT_T0_RT1_T2_(%struct.edge_printer.19* %v, i32 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %v.addr = alloca %struct.edge_printer.19*, align 4
  %x.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %0 = alloca %"struct.boost::on_finish_vertex", align 1
  %agg.tmp = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  store %struct.edge_printer.19* %v, %struct.edge_printer.19** %v.addr, align 4
  store i32 %x, i32* %x.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %struct.edge_printer.19** %v.addr, align 4
  %2 = load i32* %x.addr, align 4
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_16on_non_tree_edgeEEjKNS_14adjacency_listINS_4vecSES6_NS_9directedSENS_11no_propertyES8_S8_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer.19* %1, i32 %2, %"class.boost::adjacency_list"* %3)
  ret void
}

define linkonce_odr void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_16on_non_tree_edgeEEjKNS_14adjacency_listINS_4vecSES6_NS_9directedSENS_11no_propertyES8_S8_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer.19*, i32, %"class.boost::adjacency_list"*) nounwind inlinehint {
entry:
  %.addr = alloca %struct.edge_printer.19*, align 4
  %.addr1 = alloca i32, align 4
  %.addr2 = alloca %"class.boost::adjacency_list"*, align 4
  %3 = alloca %"struct.mpl_::bool_.38", align 1
  store %struct.edge_printer.19* %0, %struct.edge_printer.19** %.addr, align 4
  store i32 %1, i32* %.addr1, align 4
  store %"class.boost::adjacency_list"* %2, %"class.boost::adjacency_list"** %.addr2, align 4
  ret void
}

define linkonce_odr void @_ZN5boost20iterator_core_access9incrementINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEEEEvRT_(%"struct.boost::detail::out_edge_iter"* %f) align 2 {
entry:
  %f.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  store %"struct.boost::detail::out_edge_iter"* %f, %"struct.boost::detail::out_edge_iter"** %f.addr, align 4
  %0 = load %"struct.boost::detail::out_edge_iter"** %f.addr, align 4
  %1 = bitcast %"struct.boost::detail::out_edge_iter"* %0 to %"class.boost::iterator_adaptor"*
  call void @_ZN5boost16iterator_adaptorINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESC_SF_NS_11use_defaultESF_iE9incrementEv(%"class.boost::iterator_adaptor"* %1)
  ret void
}

define linkonce_odr %"struct.boost::detail::out_edge_iter"* @_ZN5boost15iterator_facadeINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESF_NS_27random_access_traversal_tagESF_iE7derivedEv(%"class.boost::iterator_facade.33"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_facade.33"*, align 4
  store %"class.boost::iterator_facade.33"* %this, %"class.boost::iterator_facade.33"** %this.addr, align 4
  %this1 = load %"class.boost::iterator_facade.33"** %this.addr
  %0 = bitcast %"class.boost::iterator_facade.33"* %this1 to %"struct.boost::detail::out_edge_iter"*
  ret %"struct.boost::detail::out_edge_iter"* %0
}

define linkonce_odr void @_ZN5boost16iterator_adaptorINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESC_SF_NS_11use_defaultESF_iE9incrementEv(%"class.boost::iterator_adaptor"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_adaptor"*, align 4
  store %"class.boost::iterator_adaptor"* %this, %"class.boost::iterator_adaptor"** %this.addr, align 4
  %this1 = load %"class.boost::iterator_adaptor"** %this.addr
  %m_iterator = getelementptr inbounds %"class.boost::iterator_adaptor"* %this1, i32 0, i32 0
  %call = call %"class.__gnu_cxx::__normal_iterator"* @_ZN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEppEv(%"class.__gnu_cxx::__normal_iterator"* %m_iterator)
  ret void
}

define linkonce_odr %"class.__gnu_cxx::__normal_iterator"* @_ZN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEppEv(%"class.__gnu_cxx::__normal_iterator"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator"*, align 4
  store %"class.__gnu_cxx::__normal_iterator"* %this, %"class.__gnu_cxx::__normal_iterator"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator"** %this.addr
  %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator"* %this1, i32 0, i32 0
  %0 = load %"class.boost::detail::stored_edge_property"** %_M_current, align 4
  %incdec.ptr = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %0, i32 1
  store %"class.boost::detail::stored_edge_property"* %incdec.ptr, %"class.boost::detail::stored_edge_property"** %_M_current, align 4
  ret %"class.__gnu_cxx::__normal_iterator"* %this1
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEES1_INS_16on_non_tree_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEENS_15on_black_targetEEEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.18"* %vlist, %"class.boost::detail::edge_desc_impl"* byval align 4 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %vlist.addr = alloca %"struct.std::pair.18"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tag = alloca %"struct.boost::on_black_target", align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp1 = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  %agg.tmp2 = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp3 = alloca %"struct.boost::on_black_target", align 1
  store %"struct.std::pair.18"* %vlist, %"struct.std::pair.18"** %vlist.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %0 = load %"struct.std::pair.18"** %vlist.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.18"* %0, i32 0, i32 0
  %1 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 12, i32 4, i1 false)
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_tree_edgeEENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer* %first, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %3)
  %5 = load %"struct.std::pair.18"** %vlist.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.18"* %5, i32 0, i32 1
  %6 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp2 to i8*
  %7 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %6, i8* %7, i32 12, i32 4, i1 false)
  %8 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_16on_non_tree_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEENS_15on_black_targetEEEvRT_T0_RT1_T2_(%struct.edge_printer.19* %second, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp2, %"class.boost::adjacency_list"* %8)
  ret void
}

define linkonce_odr void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_tree_edgeEENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer*, %"class.boost::detail::edge_desc_impl"* byval align 4, %"class.boost::adjacency_list"*) nounwind inlinehint {
entry:
  %.addr = alloca %struct.edge_printer*, align 4
  %.addr1 = alloca %"class.boost::adjacency_list"*, align 4
  %3 = alloca %"struct.mpl_::bool_.38", align 1
  store %struct.edge_printer* %0, %struct.edge_printer** %.addr, align 4
  store %"class.boost::adjacency_list"* %2, %"class.boost::adjacency_list"** %.addr1, align 4
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_16on_non_tree_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEENS_15on_black_targetEEEvRT_T0_RT1_T2_(%struct.edge_printer.19* %v, %"class.boost::detail::edge_desc_impl"* byval align 4 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %v.addr = alloca %struct.edge_printer.19*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %0 = alloca %"struct.boost::on_black_target", align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp1 = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  store %struct.edge_printer.19* %v, %struct.edge_printer.19** %v.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %struct.edge_printer.19** %v.addr, align 4
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %3 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 12, i32 4, i1 false)
  %4 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %5 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_16on_non_tree_edgeEENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer.19* %1, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %4)
  ret void
}

define linkonce_odr void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_16on_non_tree_edgeEENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer.19*, %"class.boost::detail::edge_desc_impl"* byval align 4, %"class.boost::adjacency_list"*) nounwind inlinehint {
entry:
  %.addr = alloca %struct.edge_printer.19*, align 4
  %.addr1 = alloca %"class.boost::adjacency_list"*, align 4
  %3 = alloca %"struct.mpl_::bool_.38", align 1
  store %struct.edge_printer.19* %0, %struct.edge_printer.19** %.addr, align 4
  store %"class.boost::adjacency_list"* %2, %"class.boost::adjacency_list"** %.addr1, align 4
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEES1_INS_16on_non_tree_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEENS_14on_gray_targetEEEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.18"* %vlist, %"class.boost::detail::edge_desc_impl"* byval align 4 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %vlist.addr = alloca %"struct.std::pair.18"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tag = alloca %"struct.boost::on_gray_target", align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp1 = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  %agg.tmp2 = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp3 = alloca %"struct.boost::on_gray_target", align 1
  store %"struct.std::pair.18"* %vlist, %"struct.std::pair.18"** %vlist.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %0 = load %"struct.std::pair.18"** %vlist.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.18"* %0, i32 0, i32 0
  %1 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 12, i32 4, i1 false)
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_tree_edgeEENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer* %first, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %3)
  %5 = load %"struct.std::pair.18"** %vlist.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.18"* %5, i32 0, i32 1
  %6 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp2 to i8*
  %7 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %6, i8* %7, i32 12, i32 4, i1 false)
  %8 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_16on_non_tree_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEENS_14on_gray_targetEEEvRT_T0_RT1_T2_(%struct.edge_printer.19* %second, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp2, %"class.boost::adjacency_list"* %8)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_16on_non_tree_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEENS_14on_gray_targetEEEvRT_T0_RT1_T2_(%struct.edge_printer.19* %v, %"class.boost::detail::edge_desc_impl"* byval align 4 %x, %"class.boost::adjacency_list"* %g) nounwind inlinehint {
entry:
  %v.addr = alloca %struct.edge_printer.19*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %0 = alloca %"struct.boost::on_gray_target", align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp1 = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  store %struct.edge_printer.19* %v, %struct.edge_printer.19** %v.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %struct.edge_printer.19** %v.addr, align 4
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %3 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 12, i32 4, i1 false)
  %4 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %5 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_16on_non_tree_edgeEENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer.19* %1, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %4)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEES1_INS_16on_non_tree_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEES4_EEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.18"* %vlist, %"class.boost::detail::edge_desc_impl"* byval align 4 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %vlist.addr = alloca %"struct.std::pair.18"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tag = alloca %"struct.boost::on_non_tree_edge", align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp1 = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  %agg.tmp2 = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp3 = alloca %"struct.boost::on_non_tree_edge", align 1
  store %"struct.std::pair.18"* %vlist, %"struct.std::pair.18"** %vlist.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %0 = load %"struct.std::pair.18"** %vlist.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.18"* %0, i32 0, i32 0
  %1 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 12, i32 4, i1 false)
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_tree_edgeEENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer* %first, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %3)
  %5 = load %"struct.std::pair.18"** %vlist.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.18"* %5, i32 0, i32 1
  %6 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp2 to i8*
  %7 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %6, i8* %7, i32 12, i32 4, i1 false)
  %8 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_16on_non_tree_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEES2_EEvRT_T0_RT1_T2_(%struct.edge_printer.19* %second, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp2, %"class.boost::adjacency_list"* %8)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_16on_non_tree_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEES2_EEvRT_T0_RT1_T2_(%struct.edge_printer.19* %v, %"class.boost::detail::edge_desc_impl"* byval align 4 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %v.addr = alloca %struct.edge_printer.19*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %0 = alloca %"struct.boost::on_non_tree_edge", align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp1 = alloca %"struct.mpl_::bool_", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant.39", align 1
  store %struct.edge_printer.19* %v, %struct.edge_printer.19** %v.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %struct.edge_printer.19** %v.addr, align 4
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %3 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 12, i32 4, i1 false)
  %4 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %5 = bitcast %"struct.boost::integral_constant.39"* %ref.tmp to %"struct.mpl_::bool_"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_16on_non_tree_edgeEENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb1EEE(%struct.edge_printer.19* %1, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %4)
  ret void
}

define linkonce_odr void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_16on_non_tree_edgeEENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb1EEE(%struct.edge_printer.19* %v, %"class.boost::detail::edge_desc_impl"* byval align 4 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %v.addr = alloca %struct.edge_printer.19*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %0 = alloca %"struct.mpl_::bool_", align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  store %struct.edge_printer.19* %v, %struct.edge_printer.19** %v.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %struct.edge_printer.19** %v.addr, align 4
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %3 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 12, i32 4, i1 false)
  %4 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN12edge_printerIN5boost16on_non_tree_edgeEEclINS0_6detail14edge_desc_implINS0_12directed_tagEjEEKNS0_14adjacency_listINS0_4vecSES9_NS0_9directedSENS0_11no_propertyESB_SB_NS0_5listSEEEEEvT_RT0_(%struct.edge_printer.19* %1, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %4)
  ret void
}

define linkonce_odr void @_ZN12edge_printerIN5boost16on_non_tree_edgeEEclINS0_6detail14edge_desc_implINS0_12directed_tagEjEEKNS0_14adjacency_listINS0_4vecSES9_NS0_9directedSENS0_11no_propertyESB_SB_NS0_5listSEEEEEvT_RT0_(%struct.edge_printer.19* %this, %"class.boost::detail::edge_desc_impl"* byval align 4 %e, %"class.boost::adjacency_list"* %G) align 2 {
entry:
  %this.addr = alloca %struct.edge_printer.19*, align 4
  %G.addr = alloca %"class.boost::adjacency_list"*, align 4
  store %struct.edge_printer.19* %this, %struct.edge_printer.19** %this.addr, align 4
  store %"class.boost::adjacency_list"* %G, %"class.boost::adjacency_list"** %G.addr, align 4
  %this1 = load %struct.edge_printer.19** %this.addr
  %m_edge_type = getelementptr inbounds %struct.edge_printer.19* %this1, i32 0, i32 0
  %call = call %"class.std::basic_ostream"* @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E(%"class.std::basic_ostream"* @_ZSt4cout, %"class.std::basic_string"* %m_edge_type)
  %call2 = call %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* %call, i8* getelementptr inbounds ([3 x i8]* @.str7, i32 0, i32 0))
  %0 = bitcast %"class.boost::detail::edge_desc_impl"* %e to %"struct.boost::detail::edge_base"*
  %1 = load %"class.boost::adjacency_list"** %G.addr, align 4
  %call3 = call i32 @_ZN5boost6sourceINS_12directed_tagEjNS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEET0_RKNS_6detail9edge_baseIT_S6_EERKNS_14adjacency_listIT1_T2_T3_T4_T5_T6_T7_EE(%"struct.boost::detail::edge_base"* %0, %"class.boost::adjacency_list"* %1)
  %call4 = call %"class.std::basic_ostream"* @_ZNSolsEj(%"class.std::basic_ostream"* %call2, i32 %call3)
  %call5 = call %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* %call4, i8* getelementptr inbounds ([6 x i8]* @.str8, i32 0, i32 0))
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %e to %"struct.boost::detail::edge_base"*
  %3 = load %"class.boost::adjacency_list"** %G.addr, align 4
  %call6 = call i32 @_ZN5boost6targetINS_12directed_tagEjNS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEET0_RKNS_6detail9edge_baseIT_S6_EERKNS_14adjacency_listIT1_T2_T3_T4_T5_T6_T7_EE(%"struct.boost::detail::edge_base"* %2, %"class.boost::adjacency_list"* %3)
  %call7 = call %"class.std::basic_ostream"* @_ZNSolsEj(%"class.std::basic_ostream"* %call5, i32 %call6)
  %call8 = call %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"* %call7, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  ret void
}

declare %"class.std::basic_ostream"* @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E(%"class.std::basic_ostream"*, %"class.std::basic_string"*)

declare %"class.std::basic_ostream"* @_ZNSolsEj(%"class.std::basic_ostream"*, i32)

define linkonce_odr i32 @_ZN5boost6sourceINS_12directed_tagEjNS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEET0_RKNS_6detail9edge_baseIT_S6_EERKNS_14adjacency_listIT1_T2_T3_T4_T5_T6_T7_EE(%"struct.boost::detail::edge_base"* %e, %"class.boost::adjacency_list"*) nounwind inlinehint {
entry:
  %e.addr = alloca %"struct.boost::detail::edge_base"*, align 4
  %.addr = alloca %"class.boost::adjacency_list"*, align 4
  store %"struct.boost::detail::edge_base"* %e, %"struct.boost::detail::edge_base"** %e.addr, align 4
  store %"class.boost::adjacency_list"* %0, %"class.boost::adjacency_list"** %.addr, align 4
  %1 = load %"struct.boost::detail::edge_base"** %e.addr, align 4
  %m_source = getelementptr inbounds %"struct.boost::detail::edge_base"* %1, i32 0, i32 0
  %2 = load i32* %m_source, align 4
  ret i32 %2
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEES1_INS_16on_non_tree_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEES2_EEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.18"* %vlist, %"class.boost::detail::edge_desc_impl"* byval align 4 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %vlist.addr = alloca %"struct.std::pair.18"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tag = alloca %"struct.boost::on_tree_edge", align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp1 = alloca %"struct.mpl_::bool_", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant.39", align 1
  %agg.tmp2 = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp3 = alloca %"struct.boost::on_tree_edge", align 1
  store %"struct.std::pair.18"* %vlist, %"struct.std::pair.18"** %vlist.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %0 = load %"struct.std::pair.18"** %vlist.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.18"* %0, i32 0, i32 0
  %1 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 12, i32 4, i1 false)
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = bitcast %"struct.boost::integral_constant.39"* %ref.tmp to %"struct.mpl_::bool_"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_tree_edgeEENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb1EEE(%struct.edge_printer* %first, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %3)
  %5 = load %"struct.std::pair.18"** %vlist.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.18"* %5, i32 0, i32 1
  %6 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp2 to i8*
  %7 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %6, i8* %7, i32 12, i32 4, i1 false)
  %8 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_16on_non_tree_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEENS_12on_tree_edgeEEEvRT_T0_RT1_T2_(%struct.edge_printer.19* %second, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp2, %"class.boost::adjacency_list"* %8)
  ret void
}

define linkonce_odr void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_tree_edgeEENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb1EEE(%struct.edge_printer* %v, %"class.boost::detail::edge_desc_impl"* byval align 4 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %v.addr = alloca %struct.edge_printer*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %0 = alloca %"struct.mpl_::bool_", align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  store %struct.edge_printer* %v, %struct.edge_printer** %v.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %struct.edge_printer** %v.addr, align 4
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %3 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 12, i32 4, i1 false)
  %4 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN12edge_printerIN5boost12on_tree_edgeEEclINS0_6detail14edge_desc_implINS0_12directed_tagEjEEKNS0_14adjacency_listINS0_4vecSES9_NS0_9directedSENS0_11no_propertyESB_SB_NS0_5listSEEEEEvT_RT0_(%struct.edge_printer* %1, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %4)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_16on_non_tree_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEENS_12on_tree_edgeEEEvRT_T0_RT1_T2_(%struct.edge_printer.19* %v, %"class.boost::detail::edge_desc_impl"* byval align 4 %x, %"class.boost::adjacency_list"* %g) nounwind inlinehint {
entry:
  %v.addr = alloca %struct.edge_printer.19*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %0 = alloca %"struct.boost::on_tree_edge", align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp1 = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  store %struct.edge_printer.19* %v, %struct.edge_printer.19** %v.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %struct.edge_printer.19** %v.addr, align 4
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %3 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 12, i32 4, i1 false)
  %4 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %5 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_16on_non_tree_edgeEENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer.19* %1, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %4)
  ret void
}

define linkonce_odr void @_ZN12edge_printerIN5boost12on_tree_edgeEEclINS0_6detail14edge_desc_implINS0_12directed_tagEjEEKNS0_14adjacency_listINS0_4vecSES9_NS0_9directedSENS0_11no_propertyESB_SB_NS0_5listSEEEEEvT_RT0_(%struct.edge_printer* %this, %"class.boost::detail::edge_desc_impl"* byval align 4 %e, %"class.boost::adjacency_list"* %G) align 2 {
entry:
  %this.addr = alloca %struct.edge_printer*, align 4
  %G.addr = alloca %"class.boost::adjacency_list"*, align 4
  store %struct.edge_printer* %this, %struct.edge_printer** %this.addr, align 4
  store %"class.boost::adjacency_list"* %G, %"class.boost::adjacency_list"** %G.addr, align 4
  %this1 = load %struct.edge_printer** %this.addr
  %m_edge_type = getelementptr inbounds %struct.edge_printer* %this1, i32 0, i32 0
  %call = call %"class.std::basic_ostream"* @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E(%"class.std::basic_ostream"* @_ZSt4cout, %"class.std::basic_string"* %m_edge_type)
  %call2 = call %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* %call, i8* getelementptr inbounds ([3 x i8]* @.str7, i32 0, i32 0))
  %0 = bitcast %"class.boost::detail::edge_desc_impl"* %e to %"struct.boost::detail::edge_base"*
  %1 = load %"class.boost::adjacency_list"** %G.addr, align 4
  %call3 = call i32 @_ZN5boost6sourceINS_12directed_tagEjNS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEET0_RKNS_6detail9edge_baseIT_S6_EERKNS_14adjacency_listIT1_T2_T3_T4_T5_T6_T7_EE(%"struct.boost::detail::edge_base"* %0, %"class.boost::adjacency_list"* %1)
  %call4 = call %"class.std::basic_ostream"* @_ZNSolsEj(%"class.std::basic_ostream"* %call2, i32 %call3)
  %call5 = call %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* %call4, i8* getelementptr inbounds ([6 x i8]* @.str8, i32 0, i32 0))
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %e to %"struct.boost::detail::edge_base"*
  %3 = load %"class.boost::adjacency_list"** %G.addr, align 4
  %call6 = call i32 @_ZN5boost6targetINS_12directed_tagEjNS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEET0_RKNS_6detail9edge_baseIT_S6_EERKNS_14adjacency_listIT1_T2_T3_T4_T5_T6_T7_EE(%"struct.boost::detail::edge_base"* %2, %"class.boost::adjacency_list"* %3)
  %call7 = call %"class.std::basic_ostream"* @_ZNSolsEj(%"class.std::basic_ostream"* %call5, i32 %call6)
  %call8 = call %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"* %call7, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  ret void
}

define linkonce_odr i32 @_ZN5boost3getINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjjEET0_RKNS_14put_get_helperIS4_T_EERKT1_(%"struct.boost::put_get_helper"* %pa, i32* %k) inlinehint {
entry:
  %pa.addr = alloca %"struct.boost::put_get_helper"*, align 4
  %k.addr = alloca i32*, align 4
  %v = alloca i32, align 4
  store %"struct.boost::put_get_helper"* %pa, %"struct.boost::put_get_helper"** %pa.addr, align 4
  store i32* %k, i32** %k.addr, align 4
  %0 = load %"struct.boost::put_get_helper"** %pa.addr, align 4
  %1 = bitcast %"struct.boost::put_get_helper"* %0 to %"struct.boost::vec_adj_list_vertex_id_map"*
  %2 = load i32** %k.addr, align 4
  %3 = load i32* %2, align 4
  %call = call i32 @_ZNK5boost26vec_adj_list_vertex_id_mapINS_11no_propertyEjEixEj(%"struct.boost::vec_adj_list_vertex_id_map"* %1, i32 %3)
  store i32 %call, i32* %v, align 4
  %4 = load i32* %v, align 4
  ret i32 %4
}

declare void @__assert_fail(i8*, i8*, i32, i8*) noreturn nounwind

define linkonce_odr i32 @_ZNK5boost26vec_adj_list_vertex_id_mapINS_11no_propertyEjEixEj(%"struct.boost::vec_adj_list_vertex_id_map"* %this, i32 %v) nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::vec_adj_list_vertex_id_map"*, align 4
  %v.addr = alloca i32, align 4
  store %"struct.boost::vec_adj_list_vertex_id_map"* %this, %"struct.boost::vec_adj_list_vertex_id_map"** %this.addr, align 4
  store i32 %v, i32* %v.addr, align 4
  %this1 = load %"struct.boost::vec_adj_list_vertex_id_map"** %this.addr
  %0 = load i32* %v.addr, align 4
  ret i32 %0
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEES1_INS_16on_non_tree_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEENS_15on_examine_edgeEEEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.18"* %vlist, %"class.boost::detail::edge_desc_impl"* byval align 4 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %vlist.addr = alloca %"struct.std::pair.18"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tag = alloca %"struct.boost::on_examine_edge", align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp1 = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  %agg.tmp2 = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp3 = alloca %"struct.boost::on_examine_edge", align 1
  store %"struct.std::pair.18"* %vlist, %"struct.std::pair.18"** %vlist.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %0 = load %"struct.std::pair.18"** %vlist.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.18"* %0, i32 0, i32 0
  %1 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 12, i32 4, i1 false)
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_tree_edgeEENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer* %first, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %3)
  %5 = load %"struct.std::pair.18"** %vlist.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.18"* %5, i32 0, i32 1
  %6 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp2 to i8*
  %7 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %6, i8* %7, i32 12, i32 4, i1 false)
  %8 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_16on_non_tree_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEENS_15on_examine_edgeEEEvRT_T0_RT1_T2_(%struct.edge_printer.19* %second, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp2, %"class.boost::adjacency_list"* %8)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_16on_non_tree_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEENS_15on_examine_edgeEEEvRT_T0_RT1_T2_(%struct.edge_printer.19* %v, %"class.boost::detail::edge_desc_impl"* byval align 4 %x, %"class.boost::adjacency_list"* %g) nounwind inlinehint {
entry:
  %v.addr = alloca %struct.edge_printer.19*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %0 = alloca %"struct.boost::on_examine_edge", align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp1 = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  store %struct.edge_printer.19* %v, %struct.edge_printer.19** %v.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %struct.edge_printer.19** %v.addr, align 4
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %3 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 12, i32 4, i1 false)
  %4 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %5 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_16on_non_tree_edgeEENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer.19* %1, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %4)
  ret void
}

define linkonce_odr void @_ZN5boost20iterator_core_access11dereferenceINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEEEENT_9referenceERKSI_(%"class.boost::detail::edge_desc_impl"* noalias sret %agg.result, %"struct.boost::detail::out_edge_iter"* %f) align 2 {
entry:
  %f.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  store %"struct.boost::detail::out_edge_iter"* %f, %"struct.boost::detail::out_edge_iter"** %f.addr, align 4
  %0 = load %"struct.boost::detail::out_edge_iter"** %f.addr, align 4
  call void @_ZNK5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS0_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS6_SaIS6_EEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiE11dereferenceEv(%"class.boost::detail::edge_desc_impl"* sret %agg.result, %"struct.boost::detail::out_edge_iter"* %0)
  ret void
}

define linkonce_odr %"struct.boost::detail::out_edge_iter"* @_ZNK5boost15iterator_facadeINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESF_NS_27random_access_traversal_tagESF_iE7derivedEv(%"class.boost::iterator_facade.33"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_facade.33"*, align 4
  store %"class.boost::iterator_facade.33"* %this, %"class.boost::iterator_facade.33"** %this.addr, align 4
  %this1 = load %"class.boost::iterator_facade.33"** %this.addr
  %0 = bitcast %"class.boost::iterator_facade.33"* %this1 to %"struct.boost::detail::out_edge_iter"*
  ret %"struct.boost::detail::out_edge_iter"* %0
}

define linkonce_odr void @_ZNK5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS0_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS6_SaIS6_EEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiE11dereferenceEv(%"class.boost::detail::edge_desc_impl"* noalias sret %agg.result, %"struct.boost::detail::out_edge_iter"* %this) inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  store %"struct.boost::detail::out_edge_iter"* %this, %"struct.boost::detail::out_edge_iter"** %this.addr, align 4
  %this1 = load %"struct.boost::detail::out_edge_iter"** %this.addr
  %m_src = getelementptr inbounds %"struct.boost::detail::out_edge_iter"* %this1, i32 0, i32 1
  %0 = load i32* %m_src, align 4
  %1 = bitcast %"struct.boost::detail::out_edge_iter"* %this1 to %"class.boost::iterator_adaptor"*
  %call = call %"class.__gnu_cxx::__normal_iterator"* @_ZNK5boost16iterator_adaptorINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESC_SF_NS_11use_defaultESF_iE4baseEv(%"class.boost::iterator_adaptor"* %1)
  %call2 = call %"class.boost::detail::stored_edge_property"* @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEdeEv(%"class.__gnu_cxx::__normal_iterator"* %call)
  %2 = bitcast %"class.boost::detail::stored_edge_property"* %call2 to %"class.boost::detail::stored_edge"*
  %call3 = call i32* @_ZNK5boost6detail11stored_edgeIjE10get_targetEv(%"class.boost::detail::stored_edge"* %2)
  %3 = load i32* %call3
  %4 = bitcast %"struct.boost::detail::out_edge_iter"* %this1 to %"class.boost::iterator_adaptor"*
  %call4 = call %"class.__gnu_cxx::__normal_iterator"* @_ZNK5boost16iterator_adaptorINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESC_SF_NS_11use_defaultESF_iE4baseEv(%"class.boost::iterator_adaptor"* %4)
  %call5 = call %"class.boost::detail::stored_edge_property"* @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEdeEv(%"class.__gnu_cxx::__normal_iterator"* %call4)
  %call6 = call %"struct.boost::no_property"* @_ZN5boost6detail20stored_edge_propertyIjNS_11no_propertyEE12get_propertyEv(%"class.boost::detail::stored_edge_property"* %call5)
  %5 = bitcast %"struct.boost::no_property"* %call6 to i8*
  call void @_ZN5boost6detail14edge_desc_implINS_12directed_tagEjEC1EjjPKv(%"class.boost::detail::edge_desc_impl"* %agg.result, i32 %0, i32 %3, i8* %5)
  ret void
}

define linkonce_odr void @_ZN5boost6detail14edge_desc_implINS_12directed_tagEjEC1EjjPKv(%"class.boost::detail::edge_desc_impl"* %this, i32 %s, i32 %d, i8* %eplug) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::edge_desc_impl"*, align 4
  %s.addr = alloca i32, align 4
  %d.addr = alloca i32, align 4
  %eplug.addr = alloca i8*, align 4
  store %"class.boost::detail::edge_desc_impl"* %this, %"class.boost::detail::edge_desc_impl"** %this.addr, align 4
  store i32 %s, i32* %s.addr, align 4
  store i32 %d, i32* %d.addr, align 4
  store i8* %eplug, i8** %eplug.addr, align 4
  %this1 = load %"class.boost::detail::edge_desc_impl"** %this.addr
  %0 = load i32* %s.addr, align 4
  %1 = load i32* %d.addr, align 4
  %2 = load i8** %eplug.addr, align 4
  call void @_ZN5boost6detail14edge_desc_implINS_12directed_tagEjEC2EjjPKv(%"class.boost::detail::edge_desc_impl"* %this1, i32 %0, i32 %1, i8* %2)
  ret void
}

define linkonce_odr %"class.__gnu_cxx::__normal_iterator"* @_ZNK5boost16iterator_adaptorINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESC_SF_NS_11use_defaultESF_iE4baseEv(%"class.boost::iterator_adaptor"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_adaptor"*, align 4
  store %"class.boost::iterator_adaptor"* %this, %"class.boost::iterator_adaptor"** %this.addr, align 4
  %this1 = load %"class.boost::iterator_adaptor"** %this.addr
  %m_iterator = getelementptr inbounds %"class.boost::iterator_adaptor"* %this1, i32 0, i32 0
  ret %"class.__gnu_cxx::__normal_iterator"* %m_iterator
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEdeEv(%"class.__gnu_cxx::__normal_iterator"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator"*, align 4
  store %"class.__gnu_cxx::__normal_iterator"* %this, %"class.__gnu_cxx::__normal_iterator"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator"** %this.addr
  %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator"* %this1, i32 0, i32 0
  %0 = load %"class.boost::detail::stored_edge_property"** %_M_current, align 4
  ret %"class.boost::detail::stored_edge_property"* %0
}

define linkonce_odr i32* @_ZNK5boost6detail11stored_edgeIjE10get_targetEv(%"class.boost::detail::stored_edge"* %this) nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::stored_edge"*, align 4
  store %"class.boost::detail::stored_edge"* %this, %"class.boost::detail::stored_edge"** %this.addr, align 4
  %this1 = load %"class.boost::detail::stored_edge"** %this.addr
  %m_target = getelementptr inbounds %"class.boost::detail::stored_edge"* %this1, i32 0, i32 0
  ret i32* %m_target
}

define linkonce_odr %"struct.boost::no_property"* @_ZN5boost6detail20stored_edge_propertyIjNS_11no_propertyEE12get_propertyEv(%"class.boost::detail::stored_edge_property"* %this) nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.boost::detail::stored_edge_property"* %this, %"class.boost::detail::stored_edge_property"** %this.addr, align 4
  %this1 = load %"class.boost::detail::stored_edge_property"** %this.addr
  %m_property = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %this1, i32 0, i32 1
  %call = call %"struct.boost::no_property"* @_ZNKSt8auto_ptrIN5boost11no_propertyEEdeEv(%"class.std::auto_ptr"* %m_property) nounwind
  ret %"struct.boost::no_property"* %call
}

define linkonce_odr %"struct.boost::no_property"* @_ZNKSt8auto_ptrIN5boost11no_propertyEEdeEv(%"class.std::auto_ptr"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::auto_ptr"*, align 4
  store %"class.std::auto_ptr"* %this, %"class.std::auto_ptr"** %this.addr, align 4
  %this1 = load %"class.std::auto_ptr"** %this.addr
  %_M_ptr = getelementptr inbounds %"class.std::auto_ptr"* %this1, i32 0, i32 0
  %0 = load %"struct.boost::no_property"** %_M_ptr, align 4
  ret %"struct.boost::no_property"* %0
}

define linkonce_odr void @_ZN5boost6detail14edge_desc_implINS_12directed_tagEjEC2EjjPKv(%"class.boost::detail::edge_desc_impl"* %this, i32 %s, i32 %d, i8* %eplug) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::edge_desc_impl"*, align 4
  %s.addr = alloca i32, align 4
  %d.addr = alloca i32, align 4
  %eplug.addr = alloca i8*, align 4
  store %"class.boost::detail::edge_desc_impl"* %this, %"class.boost::detail::edge_desc_impl"** %this.addr, align 4
  store i32 %s, i32* %s.addr, align 4
  store i32 %d, i32* %d.addr, align 4
  store i8* %eplug, i8** %eplug.addr, align 4
  %this1 = load %"class.boost::detail::edge_desc_impl"** %this.addr
  %0 = bitcast %"class.boost::detail::edge_desc_impl"* %this1 to %"struct.boost::detail::edge_base"*
  %1 = load i32* %s.addr, align 4
  %2 = load i32* %d.addr, align 4
  call void @_ZN5boost6detail9edge_baseINS_12directed_tagEjEC2Ejj(%"struct.boost::detail::edge_base"* %0, i32 %1, i32 %2)
  %m_eproperty = getelementptr inbounds %"class.boost::detail::edge_desc_impl"* %this1, i32 0, i32 1
  %3 = load i8** %eplug.addr, align 4
  store i8* %3, i8** %m_eproperty, align 4
  ret void
}

define linkonce_odr void @_ZN5boost6detail9edge_baseINS_12directed_tagEjEC2Ejj(%"struct.boost::detail::edge_base"* %this, i32 %s, i32 %d) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::edge_base"*, align 4
  %s.addr = alloca i32, align 4
  %d.addr = alloca i32, align 4
  store %"struct.boost::detail::edge_base"* %this, %"struct.boost::detail::edge_base"** %this.addr, align 4
  store i32 %s, i32* %s.addr, align 4
  store i32 %d, i32* %d.addr, align 4
  %this1 = load %"struct.boost::detail::edge_base"** %this.addr
  %m_source = getelementptr inbounds %"struct.boost::detail::edge_base"* %this1, i32 0, i32 0
  %0 = load i32* %s.addr, align 4
  store i32 %0, i32* %m_source, align 4
  %m_target = getelementptr inbounds %"struct.boost::detail::edge_base"* %this1, i32 0, i32 1
  %1 = load i32* %d.addr, align 4
  store i32 %1, i32* %m_target, align 4
  ret void
}

define linkonce_odr zeroext i1 @_ZN5boost20iterator_core_access5equalINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESH_EEbRKT_RKT0_N4mpl_5bool_ILb1EEE(%"struct.boost::detail::out_edge_iter"* %f1, %"struct.boost::detail::out_edge_iter"* %f2) align 2 {
entry:
  %f1.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  %f2.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  %0 = alloca %"struct.mpl_::bool_", align 1
  store %"struct.boost::detail::out_edge_iter"* %f1, %"struct.boost::detail::out_edge_iter"** %f1.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %f2, %"struct.boost::detail::out_edge_iter"** %f2.addr, align 4
  %1 = load %"struct.boost::detail::out_edge_iter"** %f1.addr, align 4
  %2 = bitcast %"struct.boost::detail::out_edge_iter"* %1 to %"class.boost::iterator_adaptor"*
  %3 = load %"struct.boost::detail::out_edge_iter"** %f2.addr, align 4
  %4 = bitcast %"struct.boost::detail::out_edge_iter"* %3 to %"class.boost::iterator_adaptor"*
  %call = call zeroext i1 @_ZNK5boost16iterator_adaptorINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESC_SF_NS_11use_defaultESF_iE5equalISG_SC_SF_SH_SF_iEEbRKNS0_IT_T0_T1_T2_T3_T4_EE(%"class.boost::iterator_adaptor"* %2, %"class.boost::iterator_adaptor"* %4)
  ret i1 %call
}

define linkonce_odr zeroext i1 @_ZNK5boost16iterator_adaptorINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESC_SF_NS_11use_defaultESF_iE5equalISG_SC_SF_SH_SF_iEEbRKNS0_IT_T0_T1_T2_T3_T4_EE(%"class.boost::iterator_adaptor"* %this, %"class.boost::iterator_adaptor"* %x) align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_adaptor"*, align 4
  %x.addr = alloca %"class.boost::iterator_adaptor"*, align 4
  store %"class.boost::iterator_adaptor"* %this, %"class.boost::iterator_adaptor"** %this.addr, align 4
  store %"class.boost::iterator_adaptor"* %x, %"class.boost::iterator_adaptor"** %x.addr, align 4
  %this1 = load %"class.boost::iterator_adaptor"** %this.addr
  %m_iterator = getelementptr inbounds %"class.boost::iterator_adaptor"* %this1, i32 0, i32 0
  %0 = load %"class.boost::iterator_adaptor"** %x.addr, align 4
  %call = call %"class.__gnu_cxx::__normal_iterator"* @_ZNK5boost16iterator_adaptorINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESC_SF_NS_11use_defaultESF_iE4baseEv(%"class.boost::iterator_adaptor"* %0)
  %call2 = call zeroext i1 @_ZN9__gnu_cxxeqIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(%"class.__gnu_cxx::__normal_iterator"* %m_iterator, %"class.__gnu_cxx::__normal_iterator"* %call)
  ret i1 %call2
}

define linkonce_odr zeroext i1 @_ZN9__gnu_cxxeqIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(%"class.__gnu_cxx::__normal_iterator"* %__lhs, %"class.__gnu_cxx::__normal_iterator"* %__rhs) inlinehint {
entry:
  %__lhs.addr = alloca %"class.__gnu_cxx::__normal_iterator"*, align 4
  %__rhs.addr = alloca %"class.__gnu_cxx::__normal_iterator"*, align 4
  store %"class.__gnu_cxx::__normal_iterator"* %__lhs, %"class.__gnu_cxx::__normal_iterator"** %__lhs.addr, align 4
  store %"class.__gnu_cxx::__normal_iterator"* %__rhs, %"class.__gnu_cxx::__normal_iterator"** %__rhs.addr, align 4
  %0 = load %"class.__gnu_cxx::__normal_iterator"** %__lhs.addr, align 4
  %call = call %"class.boost::detail::stored_edge_property"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator"* %0)
  %1 = load %"class.boost::detail::stored_edge_property"** %call
  %2 = load %"class.__gnu_cxx::__normal_iterator"** %__rhs.addr, align 4
  %call1 = call %"class.boost::detail::stored_edge_property"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator"* %2)
  %3 = load %"class.boost::detail::stored_edge_property"** %call1
  %cmp = icmp eq %"class.boost::detail::stored_edge_property"* %1, %3
  ret i1 %cmp
}

define linkonce_odr %"class.boost::detail::stored_edge_property"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator"*, align 4
  store %"class.__gnu_cxx::__normal_iterator"* %this, %"class.__gnu_cxx::__normal_iterator"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator"** %this.addr
  %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator"* %this1, i32 0, i32 0
  ret %"class.boost::detail::stored_edge_property"** %_M_current
}

define linkonce_odr void @_ZSt9make_pairIN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS0_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEESG_ESt4pairIT_T0_ESI_SJ_(%"struct.std::pair.37"* noalias sret %agg.result, %"struct.boost::detail::out_edge_iter"* byval align 4 %__x, %"struct.boost::detail::out_edge_iter"* byval align 4 %__y) inlinehint {
entry:
  call void @_ZNSt4pairIN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS0_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEESG_EC1ERKSG_SJ_(%"struct.std::pair.37"* %agg.result, %"struct.boost::detail::out_edge_iter"* %__x, %"struct.boost::detail::out_edge_iter"* %__y)
  ret void
}

define linkonce_odr void @_ZN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS0_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS6_SaIS6_EEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEC1ERKSB_RKj(%"struct.boost::detail::out_edge_iter"* %this, %"class.__gnu_cxx::__normal_iterator"* %i, i32* %src) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  %i.addr = alloca %"class.__gnu_cxx::__normal_iterator"*, align 4
  %src.addr = alloca i32*, align 4
  store %"struct.boost::detail::out_edge_iter"* %this, %"struct.boost::detail::out_edge_iter"** %this.addr, align 4
  store %"class.__gnu_cxx::__normal_iterator"* %i, %"class.__gnu_cxx::__normal_iterator"** %i.addr, align 4
  store i32* %src, i32** %src.addr, align 4
  %this1 = load %"struct.boost::detail::out_edge_iter"** %this.addr
  %0 = load i32** %src.addr
  %1 = load %"class.__gnu_cxx::__normal_iterator"** %i.addr
  call void @_ZN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS0_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS6_SaIS6_EEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEC2ERKSB_RKj(%"struct.boost::detail::out_edge_iter"* %this1, %"class.__gnu_cxx::__normal_iterator"* %1, i32* %0)
  ret void
}

define linkonce_odr %"class.std::vector.21"* @_ZN5boost17vec_adj_list_implINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_6detail12adj_list_genIS6_S2_S2_S3_S4_S4_S4_S5_E6configENS_21directed_graph_helperISA_EEE13out_edge_listEj(%"class.boost::vec_adj_list_impl"* %this, i32 %v) inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::vec_adj_list_impl"*, align 4
  %v.addr = alloca i32, align 4
  store %"class.boost::vec_adj_list_impl"* %this, %"class.boost::vec_adj_list_impl"** %this.addr, align 4
  store i32 %v, i32* %v.addr, align 4
  %this1 = load %"class.boost::vec_adj_list_impl"** %this.addr
  %m_vertices = getelementptr inbounds %"class.boost::vec_adj_list_impl"* %this1, i32 0, i32 1
  %0 = load i32* %v.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EEixEj(%"class.std::vector"* %m_vertices, i32 %0)
  %1 = bitcast %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %call to %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"*
  %m_out_edges = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* %1, i32 0, i32 0
  ret %"class.std::vector.21"* %m_out_edges
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE5beginEv(%"class.__gnu_cxx::__normal_iterator"* noalias sret %agg.result, %"class.std::vector.21"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.21"*, align 4
  store %"class.std::vector.21"* %this, %"class.std::vector.21"** %this.addr, align 4
  %this1 = load %"class.std::vector.21"** %this.addr
  %0 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.22"* %0, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl, i32 0, i32 0
  call void @_ZN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEC1ERKS6_(%"class.__gnu_cxx::__normal_iterator"* %agg.result, %"class.boost::detail::stored_edge_property"** %_M_start)
  ret void
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE3endEv(%"class.__gnu_cxx::__normal_iterator"* noalias sret %agg.result, %"class.std::vector.21"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.21"*, align 4
  store %"class.std::vector.21"* %this, %"class.std::vector.21"** %this.addr, align 4
  %this1 = load %"class.std::vector.21"** %this.addr
  %0 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.22"* %0, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl, i32 0, i32 1
  call void @_ZN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEC1ERKS6_(%"class.__gnu_cxx::__normal_iterator"* %agg.result, %"class.boost::detail::stored_edge_property"** %_M_finish)
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEC1ERKS6_(%"class.__gnu_cxx::__normal_iterator"* %this, %"class.boost::detail::stored_edge_property"** %__i) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator"*, align 4
  %__i.addr = alloca %"class.boost::detail::stored_edge_property"**, align 4
  store %"class.__gnu_cxx::__normal_iterator"* %this, %"class.__gnu_cxx::__normal_iterator"** %this.addr, align 4
  store %"class.boost::detail::stored_edge_property"** %__i, %"class.boost::detail::stored_edge_property"*** %__i.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator"** %this.addr
  %0 = load %"class.boost::detail::stored_edge_property"*** %__i.addr
  call void @_ZN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEC2ERKS6_(%"class.__gnu_cxx::__normal_iterator"* %this1, %"class.boost::detail::stored_edge_property"** %0)
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEC2ERKS6_(%"class.__gnu_cxx::__normal_iterator"* %this, %"class.boost::detail::stored_edge_property"** %__i) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator"*, align 4
  %__i.addr = alloca %"class.boost::detail::stored_edge_property"**, align 4
  store %"class.__gnu_cxx::__normal_iterator"* %this, %"class.__gnu_cxx::__normal_iterator"** %this.addr, align 4
  store %"class.boost::detail::stored_edge_property"** %__i, %"class.boost::detail::stored_edge_property"*** %__i.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator"** %this.addr
  %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator"* %this1, i32 0, i32 0
  %0 = load %"class.boost::detail::stored_edge_property"*** %__i.addr, align 4
  %1 = load %"class.boost::detail::stored_edge_property"** %0, align 4
  store %"class.boost::detail::stored_edge_property"* %1, %"class.boost::detail::stored_edge_property"** %_M_current, align 4
  ret void
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EEixEj(%"class.std::vector"* %this, i32 %__n) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  %__n.addr = alloca i32, align 4
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  %0 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %0, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start, align 4
  %2 = load i32* %__n.addr, align 4
  %add.ptr = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %1, i32 %2
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr
}

define linkonce_odr void @_ZN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS0_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS6_SaIS6_EEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEC2ERKSB_RKj(%"struct.boost::detail::out_edge_iter"* %this, %"class.__gnu_cxx::__normal_iterator"* %i, i32* %src) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  %i.addr = alloca %"class.__gnu_cxx::__normal_iterator"*, align 4
  %src.addr = alloca i32*, align 4
  store %"struct.boost::detail::out_edge_iter"* %this, %"struct.boost::detail::out_edge_iter"** %this.addr, align 4
  store %"class.__gnu_cxx::__normal_iterator"* %i, %"class.__gnu_cxx::__normal_iterator"** %i.addr, align 4
  store i32* %src, i32** %src.addr, align 4
  %this1 = load %"struct.boost::detail::out_edge_iter"** %this.addr
  %0 = bitcast %"struct.boost::detail::out_edge_iter"* %this1 to %"class.boost::iterator_adaptor"*
  %1 = load %"class.__gnu_cxx::__normal_iterator"** %i.addr, align 4
  call void @_ZN5boost16iterator_adaptorINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESC_SF_NS_11use_defaultESF_iEC2ERKSC_(%"class.boost::iterator_adaptor"* %0, %"class.__gnu_cxx::__normal_iterator"* %1)
  %m_src = getelementptr inbounds %"struct.boost::detail::out_edge_iter"* %this1, i32 0, i32 1
  %2 = load i32** %src.addr, align 4
  %3 = load i32* %2, align 4
  store i32 %3, i32* %m_src, align 4
  ret void
}

define linkonce_odr void @_ZN5boost16iterator_adaptorINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESC_SF_NS_11use_defaultESF_iEC2ERKSC_(%"class.boost::iterator_adaptor"* %this, %"class.__gnu_cxx::__normal_iterator"* %iter) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_adaptor"*, align 4
  %iter.addr = alloca %"class.__gnu_cxx::__normal_iterator"*, align 4
  store %"class.boost::iterator_adaptor"* %this, %"class.boost::iterator_adaptor"** %this.addr, align 4
  store %"class.__gnu_cxx::__normal_iterator"* %iter, %"class.__gnu_cxx::__normal_iterator"** %iter.addr, align 4
  %this1 = load %"class.boost::iterator_adaptor"** %this.addr
  %0 = bitcast %"class.boost::iterator_adaptor"* %this1 to %"class.boost::iterator_facade.33"*
  %m_iterator = getelementptr inbounds %"class.boost::iterator_adaptor"* %this1, i32 0, i32 0
  %1 = load %"class.__gnu_cxx::__normal_iterator"** %iter.addr, align 4
  %2 = bitcast %"class.__gnu_cxx::__normal_iterator"* %m_iterator to i8*
  %3 = bitcast %"class.__gnu_cxx::__normal_iterator"* %1 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 4, i32 4, i1 false)
  ret void
}

define linkonce_odr void @_ZNSt4pairIN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS0_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEESG_EC1ERKSG_SJ_(%"struct.std::pair.37"* %this, %"struct.boost::detail::out_edge_iter"* %__a, %"struct.boost::detail::out_edge_iter"* %__b) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.37"*, align 4
  %__a.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  %__b.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  store %"struct.std::pair.37"* %this, %"struct.std::pair.37"** %this.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %__a, %"struct.boost::detail::out_edge_iter"** %__a.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %__b, %"struct.boost::detail::out_edge_iter"** %__b.addr, align 4
  %this1 = load %"struct.std::pair.37"** %this.addr
  %0 = load %"struct.boost::detail::out_edge_iter"** %__a.addr
  %1 = load %"struct.boost::detail::out_edge_iter"** %__b.addr
  call void @_ZNSt4pairIN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS0_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEESG_EC2ERKSG_SJ_(%"struct.std::pair.37"* %this1, %"struct.boost::detail::out_edge_iter"* %0, %"struct.boost::detail::out_edge_iter"* %1)
  ret void
}

define linkonce_odr void @_ZNSt4pairIN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS0_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEESG_EC2ERKSG_SJ_(%"struct.std::pair.37"* %this, %"struct.boost::detail::out_edge_iter"* %__a, %"struct.boost::detail::out_edge_iter"* %__b) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.37"*, align 4
  %__a.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  %__b.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  store %"struct.std::pair.37"* %this, %"struct.std::pair.37"** %this.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %__a, %"struct.boost::detail::out_edge_iter"** %__a.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %__b, %"struct.boost::detail::out_edge_iter"** %__b.addr, align 4
  %this1 = load %"struct.std::pair.37"** %this.addr
  %first = getelementptr inbounds %"struct.std::pair.37"* %this1, i32 0, i32 0
  %0 = load %"struct.boost::detail::out_edge_iter"** %__a.addr, align 4
  %1 = bitcast %"struct.boost::detail::out_edge_iter"* %first to i8*
  %2 = bitcast %"struct.boost::detail::out_edge_iter"* %0 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 8, i32 4, i1 false)
  %second = getelementptr inbounds %"struct.std::pair.37"* %this1, i32 0, i32 1
  %3 = load %"struct.boost::detail::out_edge_iter"** %__b.addr, align 4
  %4 = bitcast %"struct.boost::detail::out_edge_iter"* %second to i8*
  %5 = bitcast %"struct.boost::detail::out_edge_iter"* %3 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %4, i8* %5, i32 8, i32 4, i1 false)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples5tupleIRNS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESI_NS0_9null_typeESJ_SJ_SJ_SJ_SJ_SJ_SJ_EC1ESI_SI_(%"class.boost::tuples::tuple.34"* %this, %"struct.boost::detail::out_edge_iter"* %t0, %"struct.boost::detail::out_edge_iter"* %t1) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::tuples::tuple.34"*, align 4
  %t0.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  %t1.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  store %"class.boost::tuples::tuple.34"* %this, %"class.boost::tuples::tuple.34"** %this.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %t0, %"struct.boost::detail::out_edge_iter"** %t0.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %t1, %"struct.boost::detail::out_edge_iter"** %t1.addr, align 4
  %this1 = load %"class.boost::tuples::tuple.34"** %this.addr
  %0 = load %"struct.boost::detail::out_edge_iter"** %t0.addr
  %1 = load %"struct.boost::detail::out_edge_iter"** %t1.addr
  call void @_ZN5boost6tuples5tupleIRNS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESI_NS0_9null_typeESJ_SJ_SJ_SJ_SJ_SJ_SJ_EC2ESI_SI_(%"class.boost::tuples::tuple.34"* %this1, %"struct.boost::detail::out_edge_iter"* %0, %"struct.boost::detail::out_edge_iter"* %1)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples5tupleIRNS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESI_NS0_9null_typeESJ_SJ_SJ_SJ_SJ_SJ_SJ_EC2ESI_SI_(%"class.boost::tuples::tuple.34"* %this, %"struct.boost::detail::out_edge_iter"* %t0, %"struct.boost::detail::out_edge_iter"* %t1) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::tuples::tuple.34"*, align 4
  %t0.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  %t1.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  %ref.tmp = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp2 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp3 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp4 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp5 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp6 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp7 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp8 = alloca %"struct.boost::tuples::null_type", align 1
  store %"class.boost::tuples::tuple.34"* %this, %"class.boost::tuples::tuple.34"** %this.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %t0, %"struct.boost::detail::out_edge_iter"** %t0.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %t1, %"struct.boost::detail::out_edge_iter"** %t1.addr, align 4
  %this1 = load %"class.boost::tuples::tuple.34"** %this.addr
  %0 = bitcast %"class.boost::tuples::tuple.34"* %this1 to %"struct.boost::tuples::cons.35"*
  %1 = load %"struct.boost::detail::out_edge_iter"** %t0.addr, align 4
  %2 = load %"struct.boost::detail::out_edge_iter"** %t1.addr, align 4
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp2)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp3)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp4)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp5)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp6)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp7)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp8)
  call void @_ZN5boost6tuples4consIRNS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEENS1_ISI_NS0_9null_typeEEEEC2ISH_SH_KSJ_SN_SN_SN_SN_SN_SN_SN_EERT_RT0_RT1_RT2_RT3_RT4_RT5_RT6_RT7_RT8_(%"struct.boost::tuples::cons.35"* %0, %"struct.boost::detail::out_edge_iter"* %1, %"struct.boost::detail::out_edge_iter"* %2, %"struct.boost::tuples::null_type"* %ref.tmp, %"struct.boost::tuples::null_type"* %ref.tmp2, %"struct.boost::tuples::null_type"* %ref.tmp3, %"struct.boost::tuples::null_type"* %ref.tmp4, %"struct.boost::tuples::null_type"* %ref.tmp5, %"struct.boost::tuples::null_type"* %ref.tmp6, %"struct.boost::tuples::null_type"* %ref.tmp7, %"struct.boost::tuples::null_type"* %ref.tmp8)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples4consIRNS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEENS1_ISI_NS0_9null_typeEEEEC2ISH_SH_KSJ_SN_SN_SN_SN_SN_SN_SN_EERT_RT0_RT1_RT2_RT3_RT4_RT5_RT6_RT7_RT8_(%"struct.boost::tuples::cons.35"* %this, %"struct.boost::detail::out_edge_iter"* %t1, %"struct.boost::detail::out_edge_iter"* %t2, %"struct.boost::tuples::null_type"* %t3, %"struct.boost::tuples::null_type"* %t4, %"struct.boost::tuples::null_type"* %t5, %"struct.boost::tuples::null_type"* %t6, %"struct.boost::tuples::null_type"* %t7, %"struct.boost::tuples::null_type"* %t8, %"struct.boost::tuples::null_type"* %t9, %"struct.boost::tuples::null_type"* %t10) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::tuples::cons.35"*, align 4
  %t1.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  %t2.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  %t3.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t4.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t5.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t6.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t7.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t8.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t9.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t10.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %ref.tmp = alloca %"struct.boost::tuples::null_type", align 1
  store %"struct.boost::tuples::cons.35"* %this, %"struct.boost::tuples::cons.35"** %this.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %t1, %"struct.boost::detail::out_edge_iter"** %t1.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %t2, %"struct.boost::detail::out_edge_iter"** %t2.addr, align 4
  store %"struct.boost::tuples::null_type"* %t3, %"struct.boost::tuples::null_type"** %t3.addr, align 4
  store %"struct.boost::tuples::null_type"* %t4, %"struct.boost::tuples::null_type"** %t4.addr, align 4
  store %"struct.boost::tuples::null_type"* %t5, %"struct.boost::tuples::null_type"** %t5.addr, align 4
  store %"struct.boost::tuples::null_type"* %t6, %"struct.boost::tuples::null_type"** %t6.addr, align 4
  store %"struct.boost::tuples::null_type"* %t7, %"struct.boost::tuples::null_type"** %t7.addr, align 4
  store %"struct.boost::tuples::null_type"* %t8, %"struct.boost::tuples::null_type"** %t8.addr, align 4
  store %"struct.boost::tuples::null_type"* %t9, %"struct.boost::tuples::null_type"** %t9.addr, align 4
  store %"struct.boost::tuples::null_type"* %t10, %"struct.boost::tuples::null_type"** %t10.addr, align 4
  %this1 = load %"struct.boost::tuples::cons.35"** %this.addr
  %0 = getelementptr inbounds %"struct.boost::tuples::cons.35"* %this1, i32 0, i32 0
  %1 = load %"struct.boost::detail::out_edge_iter"** %t1.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %1, %"struct.boost::detail::out_edge_iter"** %0, align 4
  %tail = getelementptr inbounds %"struct.boost::tuples::cons.35"* %this1, i32 0, i32 1
  %2 = load %"struct.boost::detail::out_edge_iter"** %t2.addr, align 4
  %3 = load %"struct.boost::tuples::null_type"** %t3.addr, align 4
  %4 = load %"struct.boost::tuples::null_type"** %t4.addr, align 4
  %5 = load %"struct.boost::tuples::null_type"** %t5.addr, align 4
  %6 = load %"struct.boost::tuples::null_type"** %t6.addr, align 4
  %7 = load %"struct.boost::tuples::null_type"** %t7.addr, align 4
  %8 = load %"struct.boost::tuples::null_type"** %t8.addr, align 4
  %9 = load %"struct.boost::tuples::null_type"** %t9.addr, align 4
  %10 = load %"struct.boost::tuples::null_type"** %t10.addr, align 4
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp)
  call void @_ZN5boost6tuples4consIRNS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEENS0_9null_typeEEC1ISH_EERT_RKSJ_SP_SP_SP_SP_SP_SP_SP_SP_(%"struct.boost::tuples::cons.36"* %tail, %"struct.boost::detail::out_edge_iter"* %2, %"struct.boost::tuples::null_type"* %3, %"struct.boost::tuples::null_type"* %4, %"struct.boost::tuples::null_type"* %5, %"struct.boost::tuples::null_type"* %6, %"struct.boost::tuples::null_type"* %7, %"struct.boost::tuples::null_type"* %8, %"struct.boost::tuples::null_type"* %9, %"struct.boost::tuples::null_type"* %10, %"struct.boost::tuples::null_type"* %ref.tmp)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* noalias sret %agg.result) nounwind inlinehint {
entry:
  ret void
}

define linkonce_odr void @_ZN5boost6tuples4consIRNS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEENS0_9null_typeEEC1ISH_EERT_RKSJ_SP_SP_SP_SP_SP_SP_SP_SP_(%"struct.boost::tuples::cons.36"* %this, %"struct.boost::detail::out_edge_iter"* %t1, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::tuples::cons.36"*, align 4
  %t1.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  %.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr1 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr2 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr3 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr4 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr5 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr6 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr7 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr8 = alloca %"struct.boost::tuples::null_type"*, align 4
  store %"struct.boost::tuples::cons.36"* %this, %"struct.boost::tuples::cons.36"** %this.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %t1, %"struct.boost::detail::out_edge_iter"** %t1.addr, align 4
  store %"struct.boost::tuples::null_type"* %0, %"struct.boost::tuples::null_type"** %.addr, align 4
  store %"struct.boost::tuples::null_type"* %1, %"struct.boost::tuples::null_type"** %.addr1, align 4
  store %"struct.boost::tuples::null_type"* %2, %"struct.boost::tuples::null_type"** %.addr2, align 4
  store %"struct.boost::tuples::null_type"* %3, %"struct.boost::tuples::null_type"** %.addr3, align 4
  store %"struct.boost::tuples::null_type"* %4, %"struct.boost::tuples::null_type"** %.addr4, align 4
  store %"struct.boost::tuples::null_type"* %5, %"struct.boost::tuples::null_type"** %.addr5, align 4
  store %"struct.boost::tuples::null_type"* %6, %"struct.boost::tuples::null_type"** %.addr6, align 4
  store %"struct.boost::tuples::null_type"* %7, %"struct.boost::tuples::null_type"** %.addr7, align 4
  store %"struct.boost::tuples::null_type"* %8, %"struct.boost::tuples::null_type"** %.addr8, align 4
  %this9 = load %"struct.boost::tuples::cons.36"** %this.addr
  %9 = load %"struct.boost::detail::out_edge_iter"** %t1.addr
  %10 = load %"struct.boost::tuples::null_type"** %.addr
  %11 = load %"struct.boost::tuples::null_type"** %.addr1
  %12 = load %"struct.boost::tuples::null_type"** %.addr2
  %13 = load %"struct.boost::tuples::null_type"** %.addr3
  %14 = load %"struct.boost::tuples::null_type"** %.addr4
  %15 = load %"struct.boost::tuples::null_type"** %.addr5
  %16 = load %"struct.boost::tuples::null_type"** %.addr6
  %17 = load %"struct.boost::tuples::null_type"** %.addr7
  %18 = load %"struct.boost::tuples::null_type"** %.addr8
  call void @_ZN5boost6tuples4consIRNS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEENS0_9null_typeEEC2ISH_EERT_RKSJ_SP_SP_SP_SP_SP_SP_SP_SP_(%"struct.boost::tuples::cons.36"* %this9, %"struct.boost::detail::out_edge_iter"* %9, %"struct.boost::tuples::null_type"* %10, %"struct.boost::tuples::null_type"* %11, %"struct.boost::tuples::null_type"* %12, %"struct.boost::tuples::null_type"* %13, %"struct.boost::tuples::null_type"* %14, %"struct.boost::tuples::null_type"* %15, %"struct.boost::tuples::null_type"* %16, %"struct.boost::tuples::null_type"* %17, %"struct.boost::tuples::null_type"* %18)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples4consIRNS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEENS0_9null_typeEEC2ISH_EERT_RKSJ_SP_SP_SP_SP_SP_SP_SP_SP_(%"struct.boost::tuples::cons.36"* %this, %"struct.boost::detail::out_edge_iter"* %t1, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::tuples::cons.36"*, align 4
  %t1.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  %.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr1 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr2 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr3 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr4 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr5 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr6 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr7 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr8 = alloca %"struct.boost::tuples::null_type"*, align 4
  store %"struct.boost::tuples::cons.36"* %this, %"struct.boost::tuples::cons.36"** %this.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %t1, %"struct.boost::detail::out_edge_iter"** %t1.addr, align 4
  store %"struct.boost::tuples::null_type"* %0, %"struct.boost::tuples::null_type"** %.addr, align 4
  store %"struct.boost::tuples::null_type"* %1, %"struct.boost::tuples::null_type"** %.addr1, align 4
  store %"struct.boost::tuples::null_type"* %2, %"struct.boost::tuples::null_type"** %.addr2, align 4
  store %"struct.boost::tuples::null_type"* %3, %"struct.boost::tuples::null_type"** %.addr3, align 4
  store %"struct.boost::tuples::null_type"* %4, %"struct.boost::tuples::null_type"** %.addr4, align 4
  store %"struct.boost::tuples::null_type"* %5, %"struct.boost::tuples::null_type"** %.addr5, align 4
  store %"struct.boost::tuples::null_type"* %6, %"struct.boost::tuples::null_type"** %.addr6, align 4
  store %"struct.boost::tuples::null_type"* %7, %"struct.boost::tuples::null_type"** %.addr7, align 4
  store %"struct.boost::tuples::null_type"* %8, %"struct.boost::tuples::null_type"** %.addr8, align 4
  %this9 = load %"struct.boost::tuples::cons.36"** %this.addr
  %9 = getelementptr inbounds %"struct.boost::tuples::cons.36"* %this9, i32 0, i32 0
  %10 = load %"struct.boost::detail::out_edge_iter"** %t1.addr, align 4
  store %"struct.boost::detail::out_edge_iter"* %10, %"struct.boost::detail::out_edge_iter"** %9, align 4
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEES1_INS_16on_non_tree_edgeEEjKNS_14adjacency_listINS_4vecSES7_NS_9directedSENS_11no_propertyES9_S9_NS_5listSEEENS_17on_examine_vertexEEEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.18"* %vlist, i32 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %vlist.addr = alloca %"struct.std::pair.18"*, align 4
  %x.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tag = alloca %"struct.boost::on_examine_vertex", align 1
  %agg.tmp = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  %agg.tmp1 = alloca %"struct.boost::on_examine_vertex", align 1
  store %"struct.std::pair.18"* %vlist, %"struct.std::pair.18"** %vlist.addr, align 4
  store i32 %x, i32* %x.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %0 = load %"struct.std::pair.18"** %vlist.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.18"* %0, i32 0, i32 0
  %1 = load i32* %x.addr, align 4
  %2 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %3 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_tree_edgeEEjKNS_14adjacency_listINS_4vecSES6_NS_9directedSENS_11no_propertyES8_S8_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer* %first, i32 %1, %"class.boost::adjacency_list"* %2)
  %4 = load %"struct.std::pair.18"** %vlist.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.18"* %4, i32 0, i32 1
  %5 = load i32* %x.addr, align 4
  %6 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_16on_non_tree_edgeEEjKNS_14adjacency_listINS_4vecSES5_NS_9directedSENS_11no_propertyES7_S7_NS_5listSEEENS_17on_examine_vertexEEEvRT_T0_RT1_T2_(%struct.edge_printer.19* %second, i32 %5, %"class.boost::adjacency_list"* %6)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_16on_non_tree_edgeEEjKNS_14adjacency_listINS_4vecSES5_NS_9directedSENS_11no_propertyES7_S7_NS_5listSEEENS_17on_examine_vertexEEEvRT_T0_RT1_T2_(%struct.edge_printer.19* %v, i32 %x, %"class.boost::adjacency_list"* %g) nounwind inlinehint {
entry:
  %v.addr = alloca %struct.edge_printer.19*, align 4
  %x.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %0 = alloca %"struct.boost::on_examine_vertex", align 1
  %agg.tmp = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  store %struct.edge_printer.19* %v, %struct.edge_printer.19** %v.addr, align 4
  store i32 %x, i32* %x.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %struct.edge_printer.19** %v.addr, align 4
  %2 = load i32* %x.addr, align 4
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_16on_non_tree_edgeEEjKNS_14adjacency_listINS_4vecSES6_NS_9directedSENS_11no_propertyES8_S8_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer.19* %1, i32 %2, %"class.boost::adjacency_list"* %3)
  ret void
}

define linkonce_odr void @_ZNSt5dequeIjSaIjEE9pop_frontEv(%"class.std::deque"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::deque"*, align 4
  store %"class.std::deque"* %this, %"class.std::deque"** %this.addr, align 4
  %this1 = load %"class.std::deque"** %this.addr
  %0 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl = getelementptr inbounds %"class.std::_Deque_base"* %0, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl, i32 0, i32 2
  %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_start, i32 0, i32 0
  %1 = load i32** %_M_cur, align 4
  %2 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl2 = getelementptr inbounds %"class.std::_Deque_base"* %2, i32 0, i32 0
  %_M_start3 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl2, i32 0, i32 2
  %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_start3, i32 0, i32 2
  %3 = load i32** %_M_last, align 4
  %add.ptr = getelementptr inbounds i32* %3, i32 -1
  %cmp = icmp ne i32* %1, %add.ptr
  br i1 %cmp, label %if.then, label %if.else

if.then:                                          ; preds = %entry
  %4 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl4 = getelementptr inbounds %"class.std::_Deque_base"* %4, i32 0, i32 0
  %5 = bitcast %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl4 to %"class.__gnu_cxx::new_allocator.6"*
  %6 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl5 = getelementptr inbounds %"class.std::_Deque_base"* %6, i32 0, i32 0
  %_M_start6 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl5, i32 0, i32 2
  %_M_cur7 = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_start6, i32 0, i32 0
  %7 = load i32** %_M_cur7, align 4
  call void @_ZN9__gnu_cxx13new_allocatorIjE7destroyEPj(%"class.__gnu_cxx::new_allocator.6"* %5, i32* %7)
  %8 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl8 = getelementptr inbounds %"class.std::_Deque_base"* %8, i32 0, i32 0
  %_M_start9 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl8, i32 0, i32 2
  %_M_cur10 = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_start9, i32 0, i32 0
  %9 = load i32** %_M_cur10, align 4
  %incdec.ptr = getelementptr inbounds i32* %9, i32 1
  store i32* %incdec.ptr, i32** %_M_cur10, align 4
  br label %if.end

if.else:                                          ; preds = %entry
  call void @_ZNSt5dequeIjSaIjEE16_M_pop_front_auxEv(%"class.std::deque"* %this1)
  br label %if.end

if.end:                                           ; preds = %if.else, %if.then
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIjE7destroyEPj(%"class.__gnu_cxx::new_allocator.6"* %this, i32* %__p) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.6"*, align 4
  %__p.addr = alloca i32*, align 4
  store %"class.__gnu_cxx::new_allocator.6"* %this, %"class.__gnu_cxx::new_allocator.6"** %this.addr, align 4
  store i32* %__p, i32** %__p.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.6"** %this.addr
  %0 = load i32** %__p.addr, align 4
  ret void
}

define linkonce_odr void @_ZNSt5dequeIjSaIjEE16_M_pop_front_auxEv(%"class.std::deque"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::deque"*, align 4
  store %"class.std::deque"* %this, %"class.std::deque"** %this.addr, align 4
  %this1 = load %"class.std::deque"** %this.addr
  %0 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl = getelementptr inbounds %"class.std::_Deque_base"* %0, i32 0, i32 0
  %1 = bitcast %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl to %"class.__gnu_cxx::new_allocator.6"*
  %2 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl2 = getelementptr inbounds %"class.std::_Deque_base"* %2, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl2, i32 0, i32 2
  %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_start, i32 0, i32 0
  %3 = load i32** %_M_cur, align 4
  call void @_ZN9__gnu_cxx13new_allocatorIjE7destroyEPj(%"class.__gnu_cxx::new_allocator.6"* %1, i32* %3)
  %4 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %5 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl3 = getelementptr inbounds %"class.std::_Deque_base"* %5, i32 0, i32 0
  %_M_start4 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl3, i32 0, i32 2
  %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_start4, i32 0, i32 1
  %6 = load i32** %_M_first, align 4
  call void @_ZNSt11_Deque_baseIjSaIjEE18_M_deallocate_nodeEPj(%"class.std::_Deque_base"* %4, i32* %6)
  %7 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl5 = getelementptr inbounds %"class.std::_Deque_base"* %7, i32 0, i32 0
  %_M_start6 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl5, i32 0, i32 2
  %8 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl7 = getelementptr inbounds %"class.std::_Deque_base"* %8, i32 0, i32 0
  %_M_start8 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl7, i32 0, i32 2
  %_M_node = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_start8, i32 0, i32 3
  %9 = load i32*** %_M_node, align 4
  %add.ptr = getelementptr inbounds i32** %9, i32 1
  call void @_ZNSt15_Deque_iteratorIjRjPjE11_M_set_nodeEPS1_(%"struct.std::_Deque_iterator"* %_M_start6, i32** %add.ptr)
  %10 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl9 = getelementptr inbounds %"class.std::_Deque_base"* %10, i32 0, i32 0
  %_M_start10 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl9, i32 0, i32 2
  %_M_first11 = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_start10, i32 0, i32 1
  %11 = load i32** %_M_first11, align 4
  %12 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl12 = getelementptr inbounds %"class.std::_Deque_base"* %12, i32 0, i32 0
  %_M_start13 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl12, i32 0, i32 2
  %_M_cur14 = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_start13, i32 0, i32 0
  store i32* %11, i32** %_M_cur14, align 4
  ret void
}

define linkonce_odr void @_ZNSt15_Deque_iteratorIjRjPjE11_M_set_nodeEPS1_(%"struct.std::_Deque_iterator"* %this, i32** %__new_node) align 2 {
entry:
  %this.addr = alloca %"struct.std::_Deque_iterator"*, align 4
  %__new_node.addr = alloca i32**, align 4
  store %"struct.std::_Deque_iterator"* %this, %"struct.std::_Deque_iterator"** %this.addr, align 4
  store i32** %__new_node, i32*** %__new_node.addr, align 4
  %this1 = load %"struct.std::_Deque_iterator"** %this.addr
  %0 = load i32*** %__new_node.addr, align 4
  %_M_node = getelementptr inbounds %"struct.std::_Deque_iterator"* %this1, i32 0, i32 3
  store i32** %0, i32*** %_M_node, align 4
  %1 = load i32*** %__new_node.addr, align 4
  %2 = load i32** %1, align 4
  %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator"* %this1, i32 0, i32 1
  store i32* %2, i32** %_M_first, align 4
  %_M_first2 = getelementptr inbounds %"struct.std::_Deque_iterator"* %this1, i32 0, i32 1
  %3 = load i32** %_M_first2, align 4
  %call = call i32 @_ZNSt15_Deque_iteratorIjRjPjE14_S_buffer_sizeEv()
  %add.ptr = getelementptr inbounds i32* %3, i32 %call
  %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator"* %this1, i32 0, i32 2
  store i32* %add.ptr, i32** %_M_last, align 4
  ret void
}

define linkonce_odr i32 @_ZNSt15_Deque_iteratorIjRjPjE14_S_buffer_sizeEv() nounwind align 2 {
entry:
  %call = call i32 @_ZSt16__deque_buf_sizej(i32 4)
  ret i32 %call
}

define linkonce_odr i32* @_ZNSt5dequeIjSaIjEE5frontEv(%"class.std::deque"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::deque"*, align 4
  %tmp = alloca %"struct.std::_Deque_iterator", align 4
  store %"class.std::deque"* %this, %"class.std::deque"** %this.addr, align 4
  %this1 = load %"class.std::deque"** %this.addr
  call void @_ZNSt5dequeIjSaIjEE5beginEv(%"struct.std::_Deque_iterator"* sret %tmp, %"class.std::deque"* %this1)
  %call = call i32* @_ZNKSt15_Deque_iteratorIjRjPjEdeEv(%"struct.std::_Deque_iterator"* %tmp)
  ret i32* %call
}

define linkonce_odr i32* @_ZNKSt15_Deque_iteratorIjRjPjEdeEv(%"struct.std::_Deque_iterator"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_Deque_iterator"*, align 4
  store %"struct.std::_Deque_iterator"* %this, %"struct.std::_Deque_iterator"** %this.addr, align 4
  %this1 = load %"struct.std::_Deque_iterator"** %this.addr
  %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator"* %this1, i32 0, i32 0
  %0 = load i32** %_M_cur, align 4
  ret i32* %0
}

define linkonce_odr zeroext i1 @_ZNKSt5dequeIjSaIjEE5emptyEv(%"class.std::deque"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::deque"*, align 4
  store %"class.std::deque"* %this, %"class.std::deque"** %this.addr, align 4
  %this1 = load %"class.std::deque"** %this.addr
  %0 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl = getelementptr inbounds %"class.std::_Deque_base"* %0, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl, i32 0, i32 3
  %1 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl2 = getelementptr inbounds %"class.std::_Deque_base"* %1, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl2, i32 0, i32 2
  %call = call zeroext i1 @_ZSteqIjRjPjEbRKSt15_Deque_iteratorIT_T0_T1_ES8_(%"struct.std::_Deque_iterator"* %_M_finish, %"struct.std::_Deque_iterator"* %_M_start)
  ret i1 %call
}

define linkonce_odr zeroext i1 @_ZSteqIjRjPjEbRKSt15_Deque_iteratorIT_T0_T1_ES8_(%"struct.std::_Deque_iterator"* %__x, %"struct.std::_Deque_iterator"* %__y) nounwind inlinehint {
entry:
  %__x.addr = alloca %"struct.std::_Deque_iterator"*, align 4
  %__y.addr = alloca %"struct.std::_Deque_iterator"*, align 4
  store %"struct.std::_Deque_iterator"* %__x, %"struct.std::_Deque_iterator"** %__x.addr, align 4
  store %"struct.std::_Deque_iterator"* %__y, %"struct.std::_Deque_iterator"** %__y.addr, align 4
  %0 = load %"struct.std::_Deque_iterator"** %__x.addr, align 4
  %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator"* %0, i32 0, i32 0
  %1 = load i32** %_M_cur, align 4
  %2 = load %"struct.std::_Deque_iterator"** %__y.addr, align 4
  %_M_cur1 = getelementptr inbounds %"struct.std::_Deque_iterator"* %2, i32 0, i32 0
  %3 = load i32** %_M_cur1, align 4
  %cmp = icmp eq i32* %1, %3
  ret i1 %cmp
}

define linkonce_odr void @_ZNSt5dequeIjSaIjEE9push_backERKj(%"class.std::deque"* %this, i32* %__x) align 2 {
entry:
  %this.addr = alloca %"class.std::deque"*, align 4
  %__x.addr = alloca i32*, align 4
  store %"class.std::deque"* %this, %"class.std::deque"** %this.addr, align 4
  store i32* %__x, i32** %__x.addr, align 4
  %this1 = load %"class.std::deque"** %this.addr
  %0 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl = getelementptr inbounds %"class.std::_Deque_base"* %0, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl, i32 0, i32 3
  %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_finish, i32 0, i32 0
  %1 = load i32** %_M_cur, align 4
  %2 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl2 = getelementptr inbounds %"class.std::_Deque_base"* %2, i32 0, i32 0
  %_M_finish3 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl2, i32 0, i32 3
  %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_finish3, i32 0, i32 2
  %3 = load i32** %_M_last, align 4
  %add.ptr = getelementptr inbounds i32* %3, i32 -1
  %cmp = icmp ne i32* %1, %add.ptr
  br i1 %cmp, label %if.then, label %if.else

if.then:                                          ; preds = %entry
  %4 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl4 = getelementptr inbounds %"class.std::_Deque_base"* %4, i32 0, i32 0
  %5 = bitcast %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl4 to %"class.__gnu_cxx::new_allocator.6"*
  %6 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl5 = getelementptr inbounds %"class.std::_Deque_base"* %6, i32 0, i32 0
  %_M_finish6 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl5, i32 0, i32 3
  %_M_cur7 = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_finish6, i32 0, i32 0
  %7 = load i32** %_M_cur7, align 4
  %8 = load i32** %__x.addr, align 4
  call void @_ZN9__gnu_cxx13new_allocatorIjE9constructEPjRKj(%"class.__gnu_cxx::new_allocator.6"* %5, i32* %7, i32* %8)
  %9 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl8 = getelementptr inbounds %"class.std::_Deque_base"* %9, i32 0, i32 0
  %_M_finish9 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl8, i32 0, i32 3
  %_M_cur10 = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_finish9, i32 0, i32 0
  %10 = load i32** %_M_cur10, align 4
  %incdec.ptr = getelementptr inbounds i32* %10, i32 1
  store i32* %incdec.ptr, i32** %_M_cur10, align 4
  br label %if.end

if.else:                                          ; preds = %entry
  %11 = load i32** %__x.addr, align 4
  call void @_ZNSt5dequeIjSaIjEE16_M_push_back_auxERKj(%"class.std::deque"* %this1, i32* %11)
  br label %if.end

if.end:                                           ; preds = %if.else, %if.then
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIjE9constructEPjRKj(%"class.__gnu_cxx::new_allocator.6"* %this, i32* %__p, i32* %__val) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.6"*, align 4
  %__p.addr = alloca i32*, align 4
  %__val.addr = alloca i32*, align 4
  store %"class.__gnu_cxx::new_allocator.6"* %this, %"class.__gnu_cxx::new_allocator.6"** %this.addr, align 4
  store i32* %__p, i32** %__p.addr, align 4
  store i32* %__val, i32** %__val.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.6"** %this.addr
  %0 = load i32** %__p.addr, align 4
  %1 = bitcast i32* %0 to i8*
  %new.isnull = icmp eq i8* %1, null
  br i1 %new.isnull, label %new.cont, label %new.notnull

new.notnull:                                      ; preds = %entry
  %2 = bitcast i8* %1 to i32*
  %3 = load i32** %__val.addr, align 4
  %4 = load i32* %3, align 4
  store i32 %4, i32* %2, align 4
  br label %new.cont

new.cont:                                         ; preds = %new.notnull, %entry
  %5 = phi i32* [ %2, %new.notnull ], [ null, %entry ]
  ret void
}

define linkonce_odr void @_ZNSt5dequeIjSaIjEE16_M_push_back_auxERKj(%"class.std::deque"* %this, i32* %__t) align 2 {
entry:
  %this.addr = alloca %"class.std::deque"*, align 4
  %__t.addr = alloca i32*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::deque"* %this, %"class.std::deque"** %this.addr, align 4
  store i32* %__t, i32** %__t.addr, align 4
  %this1 = load %"class.std::deque"** %this.addr
  call void @_ZNSt5dequeIjSaIjEE22_M_reserve_map_at_backEj(%"class.std::deque"* %this1, i32 1)
  %0 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %call = call i32* @_ZNSt11_Deque_baseIjSaIjEE16_M_allocate_nodeEv(%"class.std::_Deque_base"* %0)
  %1 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl = getelementptr inbounds %"class.std::_Deque_base"* %1, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl, i32 0, i32 3
  %_M_node = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_finish, i32 0, i32 3
  %2 = load i32*** %_M_node, align 4
  %add.ptr = getelementptr inbounds i32** %2, i32 1
  store i32* %call, i32** %add.ptr, align 4
  %3 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl2 = getelementptr inbounds %"class.std::_Deque_base"* %3, i32 0, i32 0
  %4 = bitcast %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl2 to %"class.__gnu_cxx::new_allocator.6"*
  %5 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl3 = getelementptr inbounds %"class.std::_Deque_base"* %5, i32 0, i32 0
  %_M_finish4 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl3, i32 0, i32 3
  %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_finish4, i32 0, i32 0
  %6 = load i32** %_M_cur, align 4
  %7 = load i32** %__t.addr, align 4
  invoke void @_ZN9__gnu_cxx13new_allocatorIjE9constructEPjRKj(%"class.__gnu_cxx::new_allocator.6"* %4, i32* %6, i32* %7)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %8 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl5 = getelementptr inbounds %"class.std::_Deque_base"* %8, i32 0, i32 0
  %_M_finish6 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl5, i32 0, i32 3
  %9 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl7 = getelementptr inbounds %"class.std::_Deque_base"* %9, i32 0, i32 0
  %_M_finish8 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl7, i32 0, i32 3
  %_M_node9 = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_finish8, i32 0, i32 3
  %10 = load i32*** %_M_node9, align 4
  %add.ptr10 = getelementptr inbounds i32** %10, i32 1
  invoke void @_ZNSt15_Deque_iteratorIjRjPjE11_M_set_nodeEPS1_(%"struct.std::_Deque_iterator"* %_M_finish6, i32** %add.ptr10)
          to label %invoke.cont11 unwind label %lpad

invoke.cont11:                                    ; preds = %invoke.cont
  %11 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl12 = getelementptr inbounds %"class.std::_Deque_base"* %11, i32 0, i32 0
  %_M_finish13 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl12, i32 0, i32 3
  %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_finish13, i32 0, i32 1
  %12 = load i32** %_M_first, align 4
  %13 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl14 = getelementptr inbounds %"class.std::_Deque_base"* %13, i32 0, i32 0
  %_M_finish15 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl14, i32 0, i32 3
  %_M_cur16 = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_finish15, i32 0, i32 0
  store i32* %12, i32** %_M_cur16, align 4
  br label %try.cont

lpad:                                             ; preds = %invoke.cont, %entry
  %14 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  %15 = extractvalue { i8*, i32 } %14, 0
  store i8* %15, i8** %exn.slot
  %16 = extractvalue { i8*, i32 } %14, 1
  store i32 %16, i32* %ehselector.slot
  br label %catch

catch:                                            ; preds = %lpad
  %exn = load i8** %exn.slot
  %17 = call i8* @__cxa_begin_catch(i8* %exn) nounwind
  %18 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %19 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl17 = getelementptr inbounds %"class.std::_Deque_base"* %19, i32 0, i32 0
  %_M_finish18 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl17, i32 0, i32 3
  %_M_node19 = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_finish18, i32 0, i32 3
  %20 = load i32*** %_M_node19, align 4
  %add.ptr20 = getelementptr inbounds i32** %20, i32 1
  %21 = load i32** %add.ptr20, align 4
  invoke void @_ZNSt11_Deque_baseIjSaIjEE18_M_deallocate_nodeEPj(%"class.std::_Deque_base"* %18, i32* %21)
          to label %invoke.cont22 unwind label %lpad21

invoke.cont22:                                    ; preds = %catch
  invoke void @__cxa_rethrow() noreturn
          to label %unreachable unwind label %lpad21

lpad21:                                           ; preds = %invoke.cont22, %catch
  %22 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %23 = extractvalue { i8*, i32 } %22, 0
  store i8* %23, i8** %exn.slot
  %24 = extractvalue { i8*, i32 } %22, 1
  store i32 %24, i32* %ehselector.slot
  invoke void @__cxa_end_catch()
          to label %invoke.cont23 unwind label %terminate.lpad

invoke.cont23:                                    ; preds = %lpad21
  br label %eh.resume

try.cont:                                         ; preds = %invoke.cont11
  ret void

eh.resume:                                        ; preds = %invoke.cont23
  %exn24 = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn24, 0
  %lpad.val25 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val25

terminate.lpad:                                   ; preds = %lpad21
  %25 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable

unreachable:                                      ; preds = %invoke.cont22
  unreachable
}

define linkonce_odr void @_ZNSt5dequeIjSaIjEE22_M_reserve_map_at_backEj(%"class.std::deque"* %this, i32 %__nodes_to_add) align 2 {
entry:
  %this.addr = alloca %"class.std::deque"*, align 4
  %__nodes_to_add.addr = alloca i32, align 4
  store %"class.std::deque"* %this, %"class.std::deque"** %this.addr, align 4
  store i32 %__nodes_to_add, i32* %__nodes_to_add.addr, align 4
  %this1 = load %"class.std::deque"** %this.addr
  %0 = load i32* %__nodes_to_add.addr, align 4
  %add = add i32 %0, 1
  %1 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl = getelementptr inbounds %"class.std::_Deque_base"* %1, i32 0, i32 0
  %_M_map_size = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl, i32 0, i32 1
  %2 = load i32* %_M_map_size, align 4
  %3 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl2 = getelementptr inbounds %"class.std::_Deque_base"* %3, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl2, i32 0, i32 3
  %_M_node = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_finish, i32 0, i32 3
  %4 = load i32*** %_M_node, align 4
  %5 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl3 = getelementptr inbounds %"class.std::_Deque_base"* %5, i32 0, i32 0
  %_M_map = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl3, i32 0, i32 0
  %6 = load i32*** %_M_map, align 4
  %sub.ptr.lhs.cast = ptrtoint i32** %4 to i32
  %sub.ptr.rhs.cast = ptrtoint i32** %6 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 4
  %sub = sub i32 %2, %sub.ptr.div
  %cmp = icmp ugt i32 %add, %sub
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %7 = load i32* %__nodes_to_add.addr, align 4
  call void @_ZNSt5dequeIjSaIjEE17_M_reallocate_mapEjb(%"class.std::deque"* %this1, i32 %7, i1 zeroext false)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
  ret void
}

define linkonce_odr i32* @_ZNSt11_Deque_baseIjSaIjEE16_M_allocate_nodeEv(%"class.std::_Deque_base"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::_Deque_base"*, align 4
  store %"class.std::_Deque_base"* %this, %"class.std::_Deque_base"** %this.addr, align 4
  %this1 = load %"class.std::_Deque_base"** %this.addr
  %_M_impl = getelementptr inbounds %"class.std::_Deque_base"* %this1, i32 0, i32 0
  %0 = bitcast %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl to %"class.std::allocator.5"*
  %1 = bitcast %"class.std::allocator.5"* %0 to %"class.__gnu_cxx::new_allocator.6"*
  %call = call i32 @_ZSt16__deque_buf_sizej(i32 4)
  %call2 = call i32* @_ZN9__gnu_cxx13new_allocatorIjE8allocateEjPKv(%"class.__gnu_cxx::new_allocator.6"* %1, i32 %call, i8* null)
  ret i32* %call2
}

define linkonce_odr i32* @_ZN9__gnu_cxx13new_allocatorIjE8allocateEjPKv(%"class.__gnu_cxx::new_allocator.6"* %this, i32 %__n, i8*) align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.6"*, align 4
  %__n.addr = alloca i32, align 4
  %.addr = alloca i8*, align 4
  store %"class.__gnu_cxx::new_allocator.6"* %this, %"class.__gnu_cxx::new_allocator.6"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i8* %0, i8** %.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.6"** %this.addr
  %1 = load i32* %__n.addr, align 4
  %call = call i32 @_ZNK9__gnu_cxx13new_allocatorIjE8max_sizeEv(%"class.__gnu_cxx::new_allocator.6"* %this1) nounwind
  %cmp = icmp ugt i32 %1, %call
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  call void @_ZSt17__throw_bad_allocv() noreturn
  unreachable

if.end:                                           ; preds = %entry
  %2 = load i32* %__n.addr, align 4
  %mul = mul i32 %2, 4
  %call2 = call noalias i8* @_Znwj(i32 %mul)
  %3 = bitcast i8* %call2 to i32*
  ret i32* %3
}

define linkonce_odr i32 @_ZNK9__gnu_cxx13new_allocatorIjE8max_sizeEv(%"class.__gnu_cxx::new_allocator.6"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.6"*, align 4
  store %"class.__gnu_cxx::new_allocator.6"* %this, %"class.__gnu_cxx::new_allocator.6"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.6"** %this.addr
  ret i32 1073741823
}

declare void @_ZSt17__throw_bad_allocv() noreturn

define linkonce_odr void @_ZNSt5dequeIjSaIjEE17_M_reallocate_mapEjb(%"class.std::deque"* %this, i32 %__nodes_to_add, i1 zeroext %__add_at_front) align 2 {
entry:
  %this.addr = alloca %"class.std::deque"*, align 4
  %__nodes_to_add.addr = alloca i32, align 4
  %__add_at_front.addr = alloca i8, align 1
  %__old_num_nodes = alloca i32, align 4
  %__new_num_nodes = alloca i32, align 4
  %__new_nstart = alloca i32**, align 4
  %__new_map_size = alloca i32, align 4
  %__new_map = alloca i32**, align 4
  store %"class.std::deque"* %this, %"class.std::deque"** %this.addr, align 4
  store i32 %__nodes_to_add, i32* %__nodes_to_add.addr, align 4
  %frombool = zext i1 %__add_at_front to i8
  store i8 %frombool, i8* %__add_at_front.addr, align 1
  %this1 = load %"class.std::deque"** %this.addr
  %0 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl = getelementptr inbounds %"class.std::_Deque_base"* %0, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl, i32 0, i32 3
  %_M_node = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_finish, i32 0, i32 3
  %1 = load i32*** %_M_node, align 4
  %2 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl2 = getelementptr inbounds %"class.std::_Deque_base"* %2, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl2, i32 0, i32 2
  %_M_node3 = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_start, i32 0, i32 3
  %3 = load i32*** %_M_node3, align 4
  %sub.ptr.lhs.cast = ptrtoint i32** %1 to i32
  %sub.ptr.rhs.cast = ptrtoint i32** %3 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 4
  %add = add nsw i32 %sub.ptr.div, 1
  store i32 %add, i32* %__old_num_nodes, align 4
  %4 = load i32* %__old_num_nodes, align 4
  %5 = load i32* %__nodes_to_add.addr, align 4
  %add4 = add i32 %4, %5
  store i32 %add4, i32* %__new_num_nodes, align 4
  %6 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl5 = getelementptr inbounds %"class.std::_Deque_base"* %6, i32 0, i32 0
  %_M_map_size = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl5, i32 0, i32 1
  %7 = load i32* %_M_map_size, align 4
  %8 = load i32* %__new_num_nodes, align 4
  %mul = mul i32 2, %8
  %cmp = icmp ugt i32 %7, %mul
  br i1 %cmp, label %if.then, label %if.else31

if.then:                                          ; preds = %entry
  %9 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl6 = getelementptr inbounds %"class.std::_Deque_base"* %9, i32 0, i32 0
  %_M_map = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl6, i32 0, i32 0
  %10 = load i32*** %_M_map, align 4
  %11 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl7 = getelementptr inbounds %"class.std::_Deque_base"* %11, i32 0, i32 0
  %_M_map_size8 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl7, i32 0, i32 1
  %12 = load i32* %_M_map_size8, align 4
  %13 = load i32* %__new_num_nodes, align 4
  %sub = sub i32 %12, %13
  %div = udiv i32 %sub, 2
  %add.ptr = getelementptr inbounds i32** %10, i32 %div
  %14 = load i8* %__add_at_front.addr, align 1
  %tobool = trunc i8 %14 to i1
  br i1 %tobool, label %cond.true, label %cond.false

cond.true:                                        ; preds = %if.then
  %15 = load i32* %__nodes_to_add.addr, align 4
  br label %cond.end

cond.false:                                       ; preds = %if.then
  br label %cond.end

cond.end:                                         ; preds = %cond.false, %cond.true
  %cond = phi i32 [ %15, %cond.true ], [ 0, %cond.false ]
  %add.ptr9 = getelementptr inbounds i32** %add.ptr, i32 %cond
  store i32** %add.ptr9, i32*** %__new_nstart, align 4
  %16 = load i32*** %__new_nstart, align 4
  %17 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl10 = getelementptr inbounds %"class.std::_Deque_base"* %17, i32 0, i32 0
  %_M_start11 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl10, i32 0, i32 2
  %_M_node12 = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_start11, i32 0, i32 3
  %18 = load i32*** %_M_node12, align 4
  %cmp13 = icmp ult i32** %16, %18
  br i1 %cmp13, label %if.then14, label %if.else

if.then14:                                        ; preds = %cond.end
  %19 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl15 = getelementptr inbounds %"class.std::_Deque_base"* %19, i32 0, i32 0
  %_M_start16 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl15, i32 0, i32 2
  %_M_node17 = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_start16, i32 0, i32 3
  %20 = load i32*** %_M_node17, align 4
  %21 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl18 = getelementptr inbounds %"class.std::_Deque_base"* %21, i32 0, i32 0
  %_M_finish19 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl18, i32 0, i32 3
  %_M_node20 = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_finish19, i32 0, i32 3
  %22 = load i32*** %_M_node20, align 4
  %add.ptr21 = getelementptr inbounds i32** %22, i32 1
  %23 = load i32*** %__new_nstart, align 4
  %call = call i32** @_ZSt4copyIPPjS1_ET0_T_S3_S2_(i32** %20, i32** %add.ptr21, i32** %23)
  br label %if.end

if.else:                                          ; preds = %cond.end
  %24 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl22 = getelementptr inbounds %"class.std::_Deque_base"* %24, i32 0, i32 0
  %_M_start23 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl22, i32 0, i32 2
  %_M_node24 = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_start23, i32 0, i32 3
  %25 = load i32*** %_M_node24, align 4
  %26 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl25 = getelementptr inbounds %"class.std::_Deque_base"* %26, i32 0, i32 0
  %_M_finish26 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl25, i32 0, i32 3
  %_M_node27 = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_finish26, i32 0, i32 3
  %27 = load i32*** %_M_node27, align 4
  %add.ptr28 = getelementptr inbounds i32** %27, i32 1
  %28 = load i32*** %__new_nstart, align 4
  %29 = load i32* %__old_num_nodes, align 4
  %add.ptr29 = getelementptr inbounds i32** %28, i32 %29
  %call30 = call i32** @_ZSt13copy_backwardIPPjS1_ET0_T_S3_S2_(i32** %25, i32** %add.ptr28, i32** %add.ptr29)
  br label %if.end

if.end:                                           ; preds = %if.else, %if.then14
  br label %if.end65

if.else31:                                        ; preds = %entry
  %30 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl32 = getelementptr inbounds %"class.std::_Deque_base"* %30, i32 0, i32 0
  %_M_map_size33 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl32, i32 0, i32 1
  %31 = load i32* %_M_map_size33, align 4
  %32 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl34 = getelementptr inbounds %"class.std::_Deque_base"* %32, i32 0, i32 0
  %_M_map_size35 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl34, i32 0, i32 1
  %call36 = call i32* @_ZSt3maxIjERKT_S2_S2_(i32* %_M_map_size35, i32* %__nodes_to_add.addr)
  %33 = load i32* %call36
  %add37 = add i32 %31, %33
  %add38 = add i32 %add37, 2
  store i32 %add38, i32* %__new_map_size, align 4
  %34 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %35 = load i32* %__new_map_size, align 4
  %call39 = call i32** @_ZNSt11_Deque_baseIjSaIjEE15_M_allocate_mapEj(%"class.std::_Deque_base"* %34, i32 %35)
  store i32** %call39, i32*** %__new_map, align 4
  %36 = load i32*** %__new_map, align 4
  %37 = load i32* %__new_map_size, align 4
  %38 = load i32* %__new_num_nodes, align 4
  %sub40 = sub i32 %37, %38
  %div41 = udiv i32 %sub40, 2
  %add.ptr42 = getelementptr inbounds i32** %36, i32 %div41
  %39 = load i8* %__add_at_front.addr, align 1
  %tobool43 = trunc i8 %39 to i1
  br i1 %tobool43, label %cond.true44, label %cond.false45

cond.true44:                                      ; preds = %if.else31
  %40 = load i32* %__nodes_to_add.addr, align 4
  br label %cond.end46

cond.false45:                                     ; preds = %if.else31
  br label %cond.end46

cond.end46:                                       ; preds = %cond.false45, %cond.true44
  %cond47 = phi i32 [ %40, %cond.true44 ], [ 0, %cond.false45 ]
  %add.ptr48 = getelementptr inbounds i32** %add.ptr42, i32 %cond47
  store i32** %add.ptr48, i32*** %__new_nstart, align 4
  %41 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl49 = getelementptr inbounds %"class.std::_Deque_base"* %41, i32 0, i32 0
  %_M_start50 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl49, i32 0, i32 2
  %_M_node51 = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_start50, i32 0, i32 3
  %42 = load i32*** %_M_node51, align 4
  %43 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl52 = getelementptr inbounds %"class.std::_Deque_base"* %43, i32 0, i32 0
  %_M_finish53 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl52, i32 0, i32 3
  %_M_node54 = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_finish53, i32 0, i32 3
  %44 = load i32*** %_M_node54, align 4
  %add.ptr55 = getelementptr inbounds i32** %44, i32 1
  %45 = load i32*** %__new_nstart, align 4
  %call56 = call i32** @_ZSt4copyIPPjS1_ET0_T_S3_S2_(i32** %42, i32** %add.ptr55, i32** %45)
  %46 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %47 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl57 = getelementptr inbounds %"class.std::_Deque_base"* %47, i32 0, i32 0
  %_M_map58 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl57, i32 0, i32 0
  %48 = load i32*** %_M_map58, align 4
  %49 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl59 = getelementptr inbounds %"class.std::_Deque_base"* %49, i32 0, i32 0
  %_M_map_size60 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl59, i32 0, i32 1
  %50 = load i32* %_M_map_size60, align 4
  call void @_ZNSt11_Deque_baseIjSaIjEE17_M_deallocate_mapEPPjj(%"class.std::_Deque_base"* %46, i32** %48, i32 %50)
  %51 = load i32*** %__new_map, align 4
  %52 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl61 = getelementptr inbounds %"class.std::_Deque_base"* %52, i32 0, i32 0
  %_M_map62 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl61, i32 0, i32 0
  store i32** %51, i32*** %_M_map62, align 4
  %53 = load i32* %__new_map_size, align 4
  %54 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl63 = getelementptr inbounds %"class.std::_Deque_base"* %54, i32 0, i32 0
  %_M_map_size64 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl63, i32 0, i32 1
  store i32 %53, i32* %_M_map_size64, align 4
  br label %if.end65

if.end65:                                         ; preds = %cond.end46, %if.end
  %55 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl66 = getelementptr inbounds %"class.std::_Deque_base"* %55, i32 0, i32 0
  %_M_start67 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl66, i32 0, i32 2
  %56 = load i32*** %__new_nstart, align 4
  call void @_ZNSt15_Deque_iteratorIjRjPjE11_M_set_nodeEPS1_(%"struct.std::_Deque_iterator"* %_M_start67, i32** %56)
  %57 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  %_M_impl68 = getelementptr inbounds %"class.std::_Deque_base"* %57, i32 0, i32 0
  %_M_finish69 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl68, i32 0, i32 3
  %58 = load i32*** %__new_nstart, align 4
  %59 = load i32* %__old_num_nodes, align 4
  %add.ptr70 = getelementptr inbounds i32** %58, i32 %59
  %add.ptr71 = getelementptr inbounds i32** %add.ptr70, i32 -1
  call void @_ZNSt15_Deque_iteratorIjRjPjE11_M_set_nodeEPS1_(%"struct.std::_Deque_iterator"* %_M_finish69, i32** %add.ptr71)
  ret void
}

define linkonce_odr i32** @_ZSt4copyIPPjS1_ET0_T_S3_S2_(i32** %__first, i32** %__last, i32** %__result) {
entry:
  %__first.addr = alloca i32**, align 4
  %__last.addr = alloca i32**, align 4
  %__result.addr = alloca i32**, align 4
  store i32** %__first, i32*** %__first.addr, align 4
  store i32** %__last, i32*** %__last.addr, align 4
  store i32** %__result, i32*** %__result.addr, align 4
  %0 = load i32*** %__first.addr, align 4
  %call = call i32** @_ZSt12__miter_baseIPPjENSt11_Miter_baseIT_E13iterator_typeES3_(i32** %0)
  %1 = load i32*** %__last.addr, align 4
  %call1 = call i32** @_ZSt12__miter_baseIPPjENSt11_Miter_baseIT_E13iterator_typeES3_(i32** %1)
  %2 = load i32*** %__result.addr, align 4
  %call2 = call i32** @_ZSt14__copy_move_a2ILb0EPPjS1_ET1_T0_S3_S2_(i32** %call, i32** %call1, i32** %2)
  ret i32** %call2
}

define linkonce_odr i32** @_ZSt13copy_backwardIPPjS1_ET0_T_S3_S2_(i32** %__first, i32** %__last, i32** %__result) {
entry:
  %__first.addr = alloca i32**, align 4
  %__last.addr = alloca i32**, align 4
  %__result.addr = alloca i32**, align 4
  store i32** %__first, i32*** %__first.addr, align 4
  store i32** %__last, i32*** %__last.addr, align 4
  store i32** %__result, i32*** %__result.addr, align 4
  %0 = load i32*** %__first.addr, align 4
  %call = call i32** @_ZSt12__miter_baseIPPjENSt11_Miter_baseIT_E13iterator_typeES3_(i32** %0)
  %1 = load i32*** %__last.addr, align 4
  %call1 = call i32** @_ZSt12__miter_baseIPPjENSt11_Miter_baseIT_E13iterator_typeES3_(i32** %1)
  %2 = load i32*** %__result.addr, align 4
  %call2 = call i32** @_ZSt23__copy_move_backward_a2ILb0EPPjS1_ET1_T0_S3_S2_(i32** %call, i32** %call1, i32** %2)
  ret i32** %call2
}

define linkonce_odr i32* @_ZSt3maxIjERKT_S2_S2_(i32* %__a, i32* %__b) nounwind {
entry:
  %retval = alloca i32*, align 4
  %__a.addr = alloca i32*, align 4
  %__b.addr = alloca i32*, align 4
  store i32* %__a, i32** %__a.addr, align 4
  store i32* %__b, i32** %__b.addr, align 4
  %0 = load i32** %__a.addr, align 4
  %1 = load i32* %0, align 4
  %2 = load i32** %__b.addr, align 4
  %3 = load i32* %2, align 4
  %cmp = icmp ult i32 %1, %3
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %4 = load i32** %__b.addr, align 4
  store i32* %4, i32** %retval
  br label %return

if.end:                                           ; preds = %entry
  %5 = load i32** %__a.addr, align 4
  store i32* %5, i32** %retval
  br label %return

return:                                           ; preds = %if.end, %if.then
  %6 = load i32** %retval
  ret i32* %6
}

define linkonce_odr i32** @_ZNSt11_Deque_baseIjSaIjEE15_M_allocate_mapEj(%"class.std::_Deque_base"* %this, i32 %__n) align 2 {
entry:
  %this.addr = alloca %"class.std::_Deque_base"*, align 4
  %__n.addr = alloca i32, align 4
  %temp.lvalue = alloca %"class.std::allocator.28", align 1
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::_Deque_base"* %this, %"class.std::_Deque_base"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  %this1 = load %"class.std::_Deque_base"** %this.addr
  call void @_ZNKSt11_Deque_baseIjSaIjEE20_M_get_map_allocatorEv(%"class.std::allocator.28"* sret %temp.lvalue, %"class.std::_Deque_base"* %this1)
  %0 = bitcast %"class.std::allocator.28"* %temp.lvalue to %"class.__gnu_cxx::new_allocator.29"*
  %1 = load i32* %__n.addr, align 4
  %call = invoke i32** @_ZN9__gnu_cxx13new_allocatorIPjE8allocateEjPKv(%"class.__gnu_cxx::new_allocator.29"* %0, i32 %1, i8* null)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  call void @_ZNSaIPjED1Ev(%"class.std::allocator.28"* %temp.lvalue) nounwind
  ret i32** %call

lpad:                                             ; preds = %entry
  %2 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %3 = extractvalue { i8*, i32 } %2, 0
  store i8* %3, i8** %exn.slot
  %4 = extractvalue { i8*, i32 } %2, 1
  store i32 %4, i32* %ehselector.slot
  call void @_ZNSaIPjED1Ev(%"class.std::allocator.28"* %temp.lvalue) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val2
}

define linkonce_odr i32** @_ZN9__gnu_cxx13new_allocatorIPjE8allocateEjPKv(%"class.__gnu_cxx::new_allocator.29"* %this, i32 %__n, i8*) align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.29"*, align 4
  %__n.addr = alloca i32, align 4
  %.addr = alloca i8*, align 4
  store %"class.__gnu_cxx::new_allocator.29"* %this, %"class.__gnu_cxx::new_allocator.29"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i8* %0, i8** %.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.29"** %this.addr
  %1 = load i32* %__n.addr, align 4
  %call = call i32 @_ZNK9__gnu_cxx13new_allocatorIPjE8max_sizeEv(%"class.__gnu_cxx::new_allocator.29"* %this1) nounwind
  %cmp = icmp ugt i32 %1, %call
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  call void @_ZSt17__throw_bad_allocv() noreturn
  unreachable

if.end:                                           ; preds = %entry
  %2 = load i32* %__n.addr, align 4
  %mul = mul i32 %2, 4
  %call2 = call noalias i8* @_Znwj(i32 %mul)
  %3 = bitcast i8* %call2 to i32**
  ret i32** %3
}

define linkonce_odr i32 @_ZNK9__gnu_cxx13new_allocatorIPjE8max_sizeEv(%"class.__gnu_cxx::new_allocator.29"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.29"*, align 4
  store %"class.__gnu_cxx::new_allocator.29"* %this, %"class.__gnu_cxx::new_allocator.29"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.29"** %this.addr
  ret i32 1073741823
}

define linkonce_odr i32** @_ZSt23__copy_move_backward_a2ILb0EPPjS1_ET1_T0_S3_S2_(i32** %__first, i32** %__last, i32** %__result) inlinehint {
entry:
  %__first.addr = alloca i32**, align 4
  %__last.addr = alloca i32**, align 4
  %__result.addr = alloca i32**, align 4
  store i32** %__first, i32*** %__first.addr, align 4
  store i32** %__last, i32*** %__last.addr, align 4
  store i32** %__result, i32*** %__result.addr, align 4
  %0 = load i32*** %__first.addr, align 4
  %call = call i32** @_ZSt12__niter_baseIPPjENSt11_Niter_baseIT_E13iterator_typeES3_(i32** %0)
  %1 = load i32*** %__last.addr, align 4
  %call1 = call i32** @_ZSt12__niter_baseIPPjENSt11_Niter_baseIT_E13iterator_typeES3_(i32** %1)
  %2 = load i32*** %__result.addr, align 4
  %call2 = call i32** @_ZSt12__niter_baseIPPjENSt11_Niter_baseIT_E13iterator_typeES3_(i32** %2)
  %call3 = call i32** @_ZSt22__copy_move_backward_aILb0EPPjS1_ET1_T0_S3_S2_(i32** %call, i32** %call1, i32** %call2)
  ret i32** %call3
}

define linkonce_odr i32** @_ZSt12__miter_baseIPPjENSt11_Miter_baseIT_E13iterator_typeES3_(i32** %__it) inlinehint {
entry:
  %__it.addr = alloca i32**, align 4
  store i32** %__it, i32*** %__it.addr, align 4
  %0 = load i32*** %__it.addr, align 4
  %call = call i32** @_ZNSt10_Iter_baseIPPjLb0EE7_S_baseES1_(i32** %0)
  ret i32** %call
}

define linkonce_odr i32** @_ZNSt10_Iter_baseIPPjLb0EE7_S_baseES1_(i32** %__it) nounwind align 2 {
entry:
  %__it.addr = alloca i32**, align 4
  store i32** %__it, i32*** %__it.addr, align 4
  %0 = load i32*** %__it.addr, align 4
  ret i32** %0
}

define linkonce_odr i32** @_ZSt22__copy_move_backward_aILb0EPPjS1_ET1_T0_S3_S2_(i32** %__first, i32** %__last, i32** %__result) inlinehint {
entry:
  %__first.addr = alloca i32**, align 4
  %__last.addr = alloca i32**, align 4
  %__result.addr = alloca i32**, align 4
  %__simple = alloca i8, align 1
  store i32** %__first, i32*** %__first.addr, align 4
  store i32** %__last, i32*** %__last.addr, align 4
  store i32** %__result, i32*** %__result.addr, align 4
  store i8 1, i8* %__simple, align 1
  %0 = load i32*** %__first.addr, align 4
  %1 = load i32*** %__last.addr, align 4
  %2 = load i32*** %__result.addr, align 4
  %call = call i32** @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIPjEEPT_PKS4_S7_S5_(i32** %0, i32** %1, i32** %2)
  ret i32** %call
}

define linkonce_odr i32** @_ZSt12__niter_baseIPPjENSt11_Niter_baseIT_E13iterator_typeES3_(i32** %__it) nounwind inlinehint {
entry:
  %__it.addr = alloca i32**, align 4
  store i32** %__it, i32*** %__it.addr, align 4
  %0 = load i32*** %__it.addr, align 4
  %call = call i32** @_ZNSt10_Iter_baseIPPjLb0EE7_S_baseES1_(i32** %0)
  ret i32** %call
}

define linkonce_odr i32** @_ZNSt20__copy_move_backwardILb0ELb1ESt26random_access_iterator_tagE13__copy_move_bIPjEEPT_PKS4_S7_S5_(i32** %__first, i32** %__last, i32** %__result) nounwind align 2 {
entry:
  %__first.addr = alloca i32**, align 4
  %__last.addr = alloca i32**, align 4
  %__result.addr = alloca i32**, align 4
  %_Num = alloca i32, align 4
  store i32** %__first, i32*** %__first.addr, align 4
  store i32** %__last, i32*** %__last.addr, align 4
  store i32** %__result, i32*** %__result.addr, align 4
  %0 = load i32*** %__last.addr, align 4
  %1 = load i32*** %__first.addr, align 4
  %sub.ptr.lhs.cast = ptrtoint i32** %0 to i32
  %sub.ptr.rhs.cast = ptrtoint i32** %1 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 4
  store i32 %sub.ptr.div, i32* %_Num, align 4
  %2 = load i32* %_Num, align 4
  %tobool = icmp ne i32 %2, 0
  br i1 %tobool, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %3 = load i32*** %__result.addr, align 4
  %4 = load i32* %_Num, align 4
  %idx.neg = sub i32 0, %4
  %add.ptr = getelementptr inbounds i32** %3, i32 %idx.neg
  %5 = bitcast i32** %add.ptr to i8*
  %6 = load i32*** %__first.addr, align 4
  %7 = bitcast i32** %6 to i8*
  %8 = load i32* %_Num, align 4
  %mul = mul i32 4, %8
  call void @llvm.memmove.p0i8.p0i8.i32(i8* %5, i8* %7, i32 %mul, i32 4, i1 false)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
  %9 = load i32*** %__result.addr, align 4
  %10 = load i32* %_Num, align 4
  %idx.neg1 = sub i32 0, %10
  %add.ptr2 = getelementptr inbounds i32** %9, i32 %idx.neg1
  ret i32** %add.ptr2
}

declare void @llvm.memmove.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i32, i1) nounwind

define linkonce_odr i32** @_ZSt14__copy_move_a2ILb0EPPjS1_ET1_T0_S3_S2_(i32** %__first, i32** %__last, i32** %__result) inlinehint {
entry:
  %__first.addr = alloca i32**, align 4
  %__last.addr = alloca i32**, align 4
  %__result.addr = alloca i32**, align 4
  store i32** %__first, i32*** %__first.addr, align 4
  store i32** %__last, i32*** %__last.addr, align 4
  store i32** %__result, i32*** %__result.addr, align 4
  %0 = load i32*** %__first.addr, align 4
  %call = call i32** @_ZSt12__niter_baseIPPjENSt11_Niter_baseIT_E13iterator_typeES3_(i32** %0)
  %1 = load i32*** %__last.addr, align 4
  %call1 = call i32** @_ZSt12__niter_baseIPPjENSt11_Niter_baseIT_E13iterator_typeES3_(i32** %1)
  %2 = load i32*** %__result.addr, align 4
  %call2 = call i32** @_ZSt12__niter_baseIPPjENSt11_Niter_baseIT_E13iterator_typeES3_(i32** %2)
  %call3 = call i32** @_ZSt13__copy_move_aILb0EPPjS1_ET1_T0_S3_S2_(i32** %call, i32** %call1, i32** %call2)
  ret i32** %call3
}

define linkonce_odr i32** @_ZSt13__copy_move_aILb0EPPjS1_ET1_T0_S3_S2_(i32** %__first, i32** %__last, i32** %__result) inlinehint {
entry:
  %__first.addr = alloca i32**, align 4
  %__last.addr = alloca i32**, align 4
  %__result.addr = alloca i32**, align 4
  %__simple = alloca i8, align 1
  store i32** %__first, i32*** %__first.addr, align 4
  store i32** %__last, i32*** %__last.addr, align 4
  store i32** %__result, i32*** %__result.addr, align 4
  store i8 1, i8* %__simple, align 1
  %0 = load i32*** %__first.addr, align 4
  %1 = load i32*** %__last.addr, align 4
  %2 = load i32*** %__result.addr, align 4
  %call = call i32** @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIPjEEPT_PKS4_S7_S5_(i32** %0, i32** %1, i32** %2)
  ret i32** %call
}

define linkonce_odr i32** @_ZNSt11__copy_moveILb0ELb1ESt26random_access_iterator_tagE8__copy_mIPjEEPT_PKS4_S7_S5_(i32** %__first, i32** %__last, i32** %__result) nounwind align 2 {
entry:
  %__first.addr = alloca i32**, align 4
  %__last.addr = alloca i32**, align 4
  %__result.addr = alloca i32**, align 4
  %_Num = alloca i32, align 4
  store i32** %__first, i32*** %__first.addr, align 4
  store i32** %__last, i32*** %__last.addr, align 4
  store i32** %__result, i32*** %__result.addr, align 4
  %0 = load i32*** %__last.addr, align 4
  %1 = load i32*** %__first.addr, align 4
  %sub.ptr.lhs.cast = ptrtoint i32** %0 to i32
  %sub.ptr.rhs.cast = ptrtoint i32** %1 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 4
  store i32 %sub.ptr.div, i32* %_Num, align 4
  %2 = load i32* %_Num, align 4
  %tobool = icmp ne i32 %2, 0
  br i1 %tobool, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %3 = load i32*** %__result.addr, align 4
  %4 = bitcast i32** %3 to i8*
  %5 = load i32*** %__first.addr, align 4
  %6 = bitcast i32** %5 to i8*
  %7 = load i32* %_Num, align 4
  %mul = mul i32 4, %7
  call void @llvm.memmove.p0i8.p0i8.i32(i8* %4, i8* %6, i32 %mul, i32 4, i1 false)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
  %8 = load i32*** %__result.addr, align 4
  %9 = load i32* %_Num, align 4
  %add.ptr = getelementptr inbounds i32** %8, i32 %9
  ret i32** %add.ptr
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEES1_INS_16on_non_tree_edgeEEjKNS_14adjacency_listINS_4vecSES7_NS_9directedSENS_11no_propertyES9_S9_NS_5listSEEENS_18on_discover_vertexEEEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.18"* %vlist, i32 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %vlist.addr = alloca %"struct.std::pair.18"*, align 4
  %x.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tag = alloca %"struct.boost::on_discover_vertex", align 1
  %agg.tmp = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  %agg.tmp1 = alloca %"struct.boost::on_discover_vertex", align 1
  store %"struct.std::pair.18"* %vlist, %"struct.std::pair.18"** %vlist.addr, align 4
  store i32 %x, i32* %x.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %0 = load %"struct.std::pair.18"** %vlist.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.18"* %0, i32 0, i32 0
  %1 = load i32* %x.addr, align 4
  %2 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %3 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_tree_edgeEEjKNS_14adjacency_listINS_4vecSES6_NS_9directedSENS_11no_propertyES8_S8_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer* %first, i32 %1, %"class.boost::adjacency_list"* %2)
  %4 = load %"struct.std::pair.18"** %vlist.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.18"* %4, i32 0, i32 1
  %5 = load i32* %x.addr, align 4
  %6 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_16on_non_tree_edgeEEjKNS_14adjacency_listINS_4vecSES5_NS_9directedSENS_11no_propertyES7_S7_NS_5listSEEENS_18on_discover_vertexEEEvRT_T0_RT1_T2_(%struct.edge_printer.19* %second, i32 %5, %"class.boost::adjacency_list"* %6)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_16on_non_tree_edgeEEjKNS_14adjacency_listINS_4vecSES5_NS_9directedSENS_11no_propertyES7_S7_NS_5listSEEENS_18on_discover_vertexEEEvRT_T0_RT1_T2_(%struct.edge_printer.19* %v, i32 %x, %"class.boost::adjacency_list"* %g) nounwind inlinehint {
entry:
  %v.addr = alloca %struct.edge_printer.19*, align 4
  %x.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %0 = alloca %"struct.boost::on_discover_vertex", align 1
  %agg.tmp = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  store %struct.edge_printer.19* %v, %struct.edge_printer.19** %v.addr, align 4
  store i32 %x, i32* %x.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %struct.edge_printer.19** %v.addr, align 4
  %2 = load i32* %x.addr, align 4
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_16on_non_tree_edgeEEjKNS_14adjacency_listINS_4vecSES6_NS_9directedSENS_11no_propertyES8_S8_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer.19* %1, i32 %2, %"class.boost::adjacency_list"* %3)
  ret void
}

define linkonce_odr void @_ZN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS0_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS6_SaIS6_EEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEC2Ev(%"struct.boost::detail::out_edge_iter"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::out_edge_iter"*, align 4
  store %"struct.boost::detail::out_edge_iter"* %this, %"struct.boost::detail::out_edge_iter"** %this.addr, align 4
  %this1 = load %"struct.boost::detail::out_edge_iter"** %this.addr
  %0 = bitcast %"struct.boost::detail::out_edge_iter"* %this1 to %"class.boost::iterator_adaptor"*
  call void @_ZN5boost16iterator_adaptorINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESC_SF_NS_11use_defaultESF_iEC2Ev(%"class.boost::iterator_adaptor"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost16iterator_adaptorINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESC_SF_NS_11use_defaultESF_iEC2Ev(%"class.boost::iterator_adaptor"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_adaptor"*, align 4
  store %"class.boost::iterator_adaptor"* %this, %"class.boost::iterator_adaptor"** %this.addr, align 4
  %this1 = load %"class.boost::iterator_adaptor"** %this.addr
  %0 = bitcast %"class.boost::iterator_adaptor"* %this1 to %"class.boost::iterator_facade.33"*
  %m_iterator = getelementptr inbounds %"class.boost::iterator_adaptor"* %this1, i32 0, i32 0
  call void @_ZN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEC1Ev(%"class.__gnu_cxx::__normal_iterator"* %m_iterator)
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEC1Ev(%"class.__gnu_cxx::__normal_iterator"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator"*, align 4
  store %"class.__gnu_cxx::__normal_iterator"* %this, %"class.__gnu_cxx::__normal_iterator"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator"** %this.addr
  call void @_ZN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEC2Ev(%"class.__gnu_cxx::__normal_iterator"* %this1)
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEC2Ev(%"class.__gnu_cxx::__normal_iterator"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator"*, align 4
  store %"class.__gnu_cxx::__normal_iterator"* %this, %"class.__gnu_cxx::__normal_iterator"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator"** %this.addr
  %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator"* %this1, i32 0, i32 0
  store %"class.boost::detail::stored_edge_property"* null, %"class.boost::detail::stored_edge_property"** %_M_current, align 4
  ret void
}

define linkonce_odr void @_ZN5boost20iterator_core_access9incrementINS_12range_detail16integer_iteratorIjEEEEvRT_(%"class.boost::range_detail::integer_iterator"* %f) align 2 {
entry:
  %f.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  store %"class.boost::range_detail::integer_iterator"* %f, %"class.boost::range_detail::integer_iterator"** %f.addr, align 4
  %0 = load %"class.boost::range_detail::integer_iterator"** %f.addr, align 4
  call void @_ZN5boost12range_detail16integer_iteratorIjE9incrementEv(%"class.boost::range_detail::integer_iterator"* %0)
  ret void
}

define linkonce_odr %"class.boost::range_detail::integer_iterator"* @_ZN5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiE7derivedEv(%"class.boost::iterator_facade"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_facade"*, align 4
  store %"class.boost::iterator_facade"* %this, %"class.boost::iterator_facade"** %this.addr, align 4
  %this1 = load %"class.boost::iterator_facade"** %this.addr
  %0 = bitcast %"class.boost::iterator_facade"* %this1 to %"class.boost::range_detail::integer_iterator"*
  ret %"class.boost::range_detail::integer_iterator"* %0
}

define linkonce_odr void @_ZN5boost12range_detail16integer_iteratorIjE9incrementEv(%"class.boost::range_detail::integer_iterator"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  store %"class.boost::range_detail::integer_iterator"* %this, %"class.boost::range_detail::integer_iterator"** %this.addr, align 4
  %this1 = load %"class.boost::range_detail::integer_iterator"** %this.addr
  %m_value = getelementptr inbounds %"class.boost::range_detail::integer_iterator"* %this1, i32 0, i32 0
  %0 = load i32* %m_value, align 4
  %inc = add i32 %0, 1
  store i32 %inc, i32* %m_value, align 4
  ret void
}

define linkonce_odr i32 @_ZN5boost20iterator_core_access11dereferenceINS_12range_detail16integer_iteratorIjEEEENT_9referenceERKS5_(%"class.boost::range_detail::integer_iterator"* %f) align 2 {
entry:
  %f.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  store %"class.boost::range_detail::integer_iterator"* %f, %"class.boost::range_detail::integer_iterator"** %f.addr, align 4
  %0 = load %"class.boost::range_detail::integer_iterator"** %f.addr, align 4
  %call = call i32 @_ZNK5boost12range_detail16integer_iteratorIjE11dereferenceEv(%"class.boost::range_detail::integer_iterator"* %0)
  ret i32 %call
}

define linkonce_odr %"class.boost::range_detail::integer_iterator"* @_ZNK5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiE7derivedEv(%"class.boost::iterator_facade"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_facade"*, align 4
  store %"class.boost::iterator_facade"* %this, %"class.boost::iterator_facade"** %this.addr, align 4
  %this1 = load %"class.boost::iterator_facade"** %this.addr
  %0 = bitcast %"class.boost::iterator_facade"* %this1 to %"class.boost::range_detail::integer_iterator"*
  ret %"class.boost::range_detail::integer_iterator"* %0
}

define linkonce_odr i32 @_ZNK5boost12range_detail16integer_iteratorIjE11dereferenceEv(%"class.boost::range_detail::integer_iterator"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  store %"class.boost::range_detail::integer_iterator"* %this, %"class.boost::range_detail::integer_iterator"** %this.addr, align 4
  %this1 = load %"class.boost::range_detail::integer_iterator"** %this.addr
  %m_value = getelementptr inbounds %"class.boost::range_detail::integer_iterator"* %this1, i32 0, i32 0
  %0 = load i32* %m_value, align 4
  ret i32 %0
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEES1_INS_16on_non_tree_edgeEEjKNS_14adjacency_listINS_4vecSES7_NS_9directedSENS_11no_propertyES9_S9_NS_5listSEEENS_20on_initialize_vertexEEEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.18"* %vlist, i32 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %vlist.addr = alloca %"struct.std::pair.18"*, align 4
  %x.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tag = alloca %"struct.boost::on_initialize_vertex", align 1
  %agg.tmp = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  %agg.tmp1 = alloca %"struct.boost::on_initialize_vertex", align 1
  store %"struct.std::pair.18"* %vlist, %"struct.std::pair.18"** %vlist.addr, align 4
  store i32 %x, i32* %x.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %0 = load %"struct.std::pair.18"** %vlist.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.18"* %0, i32 0, i32 0
  %1 = load i32* %x.addr, align 4
  %2 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %3 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_tree_edgeEEjKNS_14adjacency_listINS_4vecSES6_NS_9directedSENS_11no_propertyES8_S8_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer* %first, i32 %1, %"class.boost::adjacency_list"* %2)
  %4 = load %"struct.std::pair.18"** %vlist.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.18"* %4, i32 0, i32 1
  %5 = load i32* %x.addr, align 4
  %6 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_16on_non_tree_edgeEEjKNS_14adjacency_listINS_4vecSES5_NS_9directedSENS_11no_propertyES7_S7_NS_5listSEEENS_20on_initialize_vertexEEEvRT_T0_RT1_T2_(%struct.edge_printer.19* %second, i32 %5, %"class.boost::adjacency_list"* %6)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_16on_non_tree_edgeEEjKNS_14adjacency_listINS_4vecSES5_NS_9directedSENS_11no_propertyES7_S7_NS_5listSEEENS_20on_initialize_vertexEEEvRT_T0_RT1_T2_(%struct.edge_printer.19* %v, i32 %x, %"class.boost::adjacency_list"* %g) nounwind inlinehint {
entry:
  %v.addr = alloca %struct.edge_printer.19*, align 4
  %x.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %0 = alloca %"struct.boost::on_initialize_vertex", align 1
  %agg.tmp = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  store %struct.edge_printer.19* %v, %struct.edge_printer.19** %v.addr, align 4
  store i32 %x, i32* %x.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %struct.edge_printer.19** %v.addr, align 4
  %2 = load i32* %x.addr, align 4
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_16on_non_tree_edgeEEjKNS_14adjacency_listINS_4vecSES6_NS_9directedSENS_11no_propertyES8_S8_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer.19* %1, i32 %2, %"class.boost::adjacency_list"* %3)
  ret void
}

define linkonce_odr zeroext i1 @_ZN5boost20iterator_core_access5equalINS_12range_detail16integer_iteratorIjEES4_EEbRKT_RKT0_N4mpl_5bool_ILb1EEE(%"class.boost::range_detail::integer_iterator"* %f1, %"class.boost::range_detail::integer_iterator"* %f2) align 2 {
entry:
  %f1.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %f2.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %0 = alloca %"struct.mpl_::bool_", align 1
  store %"class.boost::range_detail::integer_iterator"* %f1, %"class.boost::range_detail::integer_iterator"** %f1.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %f2, %"class.boost::range_detail::integer_iterator"** %f2.addr, align 4
  %1 = load %"class.boost::range_detail::integer_iterator"** %f1.addr, align 4
  %2 = load %"class.boost::range_detail::integer_iterator"** %f2.addr, align 4
  %call = call zeroext i1 @_ZNK5boost12range_detail16integer_iteratorIjE5equalERKS2_(%"class.boost::range_detail::integer_iterator"* %1, %"class.boost::range_detail::integer_iterator"* %2)
  ret i1 %call
}

define linkonce_odr zeroext i1 @_ZNK5boost12range_detail16integer_iteratorIjE5equalERKS2_(%"class.boost::range_detail::integer_iterator"* %this, %"class.boost::range_detail::integer_iterator"* %other) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %other.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  store %"class.boost::range_detail::integer_iterator"* %this, %"class.boost::range_detail::integer_iterator"** %this.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %other, %"class.boost::range_detail::integer_iterator"** %other.addr, align 4
  %this1 = load %"class.boost::range_detail::integer_iterator"** %this.addr
  %m_value = getelementptr inbounds %"class.boost::range_detail::integer_iterator"* %this1, i32 0, i32 0
  %0 = load i32* %m_value, align 4
  %1 = load %"class.boost::range_detail::integer_iterator"** %other.addr, align 4
  %m_value2 = getelementptr inbounds %"class.boost::range_detail::integer_iterator"* %1, i32 0, i32 0
  %2 = load i32* %m_value2, align 4
  %cmp = icmp eq i32 %0, %2
  ret i1 %cmp
}

define linkonce_odr void @_ZSt9make_pairIN5boost12range_detail16integer_iteratorIjEES3_ESt4pairIT_T0_ES5_S6_(%"struct.std::pair.32"* noalias sret %agg.result, %"class.boost::range_detail::integer_iterator"* byval align 4 %__x, %"class.boost::range_detail::integer_iterator"* byval align 4 %__y) inlinehint {
entry:
  call void @_ZNSt4pairIN5boost12range_detail16integer_iteratorIjEES3_EC1ERKS3_S6_(%"struct.std::pair.32"* %agg.result, %"class.boost::range_detail::integer_iterator"* %__x, %"class.boost::range_detail::integer_iterator"* %__y)
  ret void
}

define linkonce_odr void @_ZNK5boost17vec_adj_list_implINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_6detail12adj_list_genIS6_S2_S2_S3_S4_S4_S4_S5_E6configENS_21directed_graph_helperISA_EEE10vertex_setEv(%"class.boost::integer_range"* noalias sret %agg.result, %"class.boost::vec_adj_list_impl"* %this) inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::vec_adj_list_impl"*, align 4
  store %"class.boost::vec_adj_list_impl"* %this, %"class.boost::vec_adj_list_impl"** %this.addr, align 4
  %this1 = load %"class.boost::vec_adj_list_impl"** %this.addr
  %m_vertices = getelementptr inbounds %"class.boost::vec_adj_list_impl"* %this1, i32 0, i32 1
  %call = call i32 @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE4sizeEv(%"class.std::vector"* %m_vertices)
  call void @_ZN5boost13integer_rangeIjEC1Ejj(%"class.boost::integer_range"* %agg.result, i32 0, i32 %call)
  ret void
}

define linkonce_odr void @_ZNK5boost14iterator_rangeINS_12range_detail16integer_iteratorIjEEE5beginEv(%"class.boost::range_detail::integer_iterator"* noalias sret %agg.result, %"class.boost::iterator_range"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_range"*, align 4
  store %"class.boost::iterator_range"* %this, %"class.boost::iterator_range"** %this.addr, align 4
  %this1 = load %"class.boost::iterator_range"** %this.addr
  %m_Begin = getelementptr inbounds %"class.boost::iterator_range"* %this1, i32 0, i32 0
  %0 = bitcast %"class.boost::range_detail::integer_iterator"* %agg.result to i8*
  %1 = bitcast %"class.boost::range_detail::integer_iterator"* %m_Begin to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 4, i32 4, i1 false)
  ret void
}

define linkonce_odr void @_ZNK5boost14iterator_rangeINS_12range_detail16integer_iteratorIjEEE3endEv(%"class.boost::range_detail::integer_iterator"* noalias sret %agg.result, %"class.boost::iterator_range"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_range"*, align 4
  store %"class.boost::iterator_range"* %this, %"class.boost::iterator_range"** %this.addr, align 4
  %this1 = load %"class.boost::iterator_range"** %this.addr
  %m_End = getelementptr inbounds %"class.boost::iterator_range"* %this1, i32 0, i32 1
  %0 = bitcast %"class.boost::range_detail::integer_iterator"* %agg.result to i8*
  %1 = bitcast %"class.boost::range_detail::integer_iterator"* %m_End to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 4, i32 4, i1 false)
  ret void
}

define linkonce_odr void @_ZN5boost13integer_rangeIjEC1Ejj(%"class.boost::integer_range"* %this, i32 %first, i32 %last) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::integer_range"*, align 4
  %first.addr = alloca i32, align 4
  %last.addr = alloca i32, align 4
  store %"class.boost::integer_range"* %this, %"class.boost::integer_range"** %this.addr, align 4
  store i32 %first, i32* %first.addr, align 4
  store i32 %last, i32* %last.addr, align 4
  %this1 = load %"class.boost::integer_range"** %this.addr
  %0 = load i32* %first.addr, align 4
  %1 = load i32* %last.addr, align 4
  call void @_ZN5boost13integer_rangeIjEC2Ejj(%"class.boost::integer_range"* %this1, i32 %0, i32 %1)
  ret void
}

define linkonce_odr i32 @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE4sizeEv(%"class.std::vector"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  %0 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %0, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl, i32 0, i32 1
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish, align 4
  %2 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base"* %2, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl2, i32 0, i32 0
  %3 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start, align 4
  %sub.ptr.lhs.cast = ptrtoint %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %1 to i32
  %sub.ptr.rhs.cast = ptrtoint %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %3 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 16
  ret i32 %sub.ptr.div
}

define linkonce_odr void @_ZN5boost13integer_rangeIjEC2Ejj(%"class.boost::integer_range"* %this, i32 %first, i32 %last) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::integer_range"*, align 4
  %first.addr = alloca i32, align 4
  %last.addr = alloca i32, align 4
  %agg.tmp = alloca %"class.boost::range_detail::integer_iterator", align 4
  %agg.tmp2 = alloca %"class.boost::range_detail::integer_iterator", align 4
  store %"class.boost::integer_range"* %this, %"class.boost::integer_range"** %this.addr, align 4
  store i32 %first, i32* %first.addr, align 4
  store i32 %last, i32* %last.addr, align 4
  %this1 = load %"class.boost::integer_range"** %this.addr
  %0 = bitcast %"class.boost::integer_range"* %this1 to %"class.boost::iterator_range"*
  %1 = load i32* %first.addr, align 4
  call void @_ZN5boost12range_detail16integer_iteratorIjEC1Ej(%"class.boost::range_detail::integer_iterator"* %agg.tmp, i32 %1)
  %2 = load i32* %last.addr, align 4
  call void @_ZN5boost12range_detail16integer_iteratorIjEC1Ej(%"class.boost::range_detail::integer_iterator"* %agg.tmp2, i32 %2)
  call void @_ZN5boost14iterator_rangeINS_12range_detail16integer_iteratorIjEEEC2IS3_EET_S6_(%"class.boost::iterator_range"* %0, %"class.boost::range_detail::integer_iterator"* byval align 4 %agg.tmp, %"class.boost::range_detail::integer_iterator"* byval align 4 %agg.tmp2)
  ret void
}

define linkonce_odr void @_ZN5boost14iterator_rangeINS_12range_detail16integer_iteratorIjEEEC2IS3_EET_S6_(%"class.boost::iterator_range"* %this, %"class.boost::range_detail::integer_iterator"* byval align 4 %Begin, %"class.boost::range_detail::integer_iterator"* byval align 4 %End) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_range"*, align 4
  store %"class.boost::iterator_range"* %this, %"class.boost::iterator_range"** %this.addr, align 4
  %this1 = load %"class.boost::iterator_range"** %this.addr
  %m_Begin = getelementptr inbounds %"class.boost::iterator_range"* %this1, i32 0, i32 0
  %0 = bitcast %"class.boost::range_detail::integer_iterator"* %m_Begin to i8*
  %1 = bitcast %"class.boost::range_detail::integer_iterator"* %Begin to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 4, i32 4, i1 false)
  %m_End = getelementptr inbounds %"class.boost::iterator_range"* %this1, i32 0, i32 1
  %2 = bitcast %"class.boost::range_detail::integer_iterator"* %m_End to i8*
  %3 = bitcast %"class.boost::range_detail::integer_iterator"* %End to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 4, i32 4, i1 false)
  ret void
}

define linkonce_odr void @_ZN5boost12range_detail16integer_iteratorIjEC1Ej(%"class.boost::range_detail::integer_iterator"* %this, i32 %x) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %x.addr = alloca i32, align 4
  store %"class.boost::range_detail::integer_iterator"* %this, %"class.boost::range_detail::integer_iterator"** %this.addr, align 4
  store i32 %x, i32* %x.addr, align 4
  %this1 = load %"class.boost::range_detail::integer_iterator"** %this.addr
  %0 = load i32* %x.addr, align 4
  call void @_ZN5boost12range_detail16integer_iteratorIjEC2Ej(%"class.boost::range_detail::integer_iterator"* %this1, i32 %0)
  ret void
}

define linkonce_odr void @_ZN5boost12range_detail16integer_iteratorIjEC2Ej(%"class.boost::range_detail::integer_iterator"* %this, i32 %x) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %x.addr = alloca i32, align 4
  store %"class.boost::range_detail::integer_iterator"* %this, %"class.boost::range_detail::integer_iterator"** %this.addr, align 4
  store i32 %x, i32* %x.addr, align 4
  %this1 = load %"class.boost::range_detail::integer_iterator"** %this.addr
  %0 = bitcast %"class.boost::range_detail::integer_iterator"* %this1 to %"class.boost::iterator_facade"*
  %m_value = getelementptr inbounds %"class.boost::range_detail::integer_iterator"* %this1, i32 0, i32 0
  %1 = load i32* %x.addr, align 4
  store i32 %1, i32* %m_value, align 4
  ret void
}

define linkonce_odr void @_ZNSt4pairIN5boost12range_detail16integer_iteratorIjEES3_EC1ERKS3_S6_(%"struct.std::pair.32"* %this, %"class.boost::range_detail::integer_iterator"* %__a, %"class.boost::range_detail::integer_iterator"* %__b) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.32"*, align 4
  %__a.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %__b.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  store %"struct.std::pair.32"* %this, %"struct.std::pair.32"** %this.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %__a, %"class.boost::range_detail::integer_iterator"** %__a.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %__b, %"class.boost::range_detail::integer_iterator"** %__b.addr, align 4
  %this1 = load %"struct.std::pair.32"** %this.addr
  %0 = load %"class.boost::range_detail::integer_iterator"** %__a.addr
  %1 = load %"class.boost::range_detail::integer_iterator"** %__b.addr
  call void @_ZNSt4pairIN5boost12range_detail16integer_iteratorIjEES3_EC2ERKS3_S6_(%"struct.std::pair.32"* %this1, %"class.boost::range_detail::integer_iterator"* %0, %"class.boost::range_detail::integer_iterator"* %1)
  ret void
}

define linkonce_odr void @_ZNSt4pairIN5boost12range_detail16integer_iteratorIjEES3_EC2ERKS3_S6_(%"struct.std::pair.32"* %this, %"class.boost::range_detail::integer_iterator"* %__a, %"class.boost::range_detail::integer_iterator"* %__b) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.32"*, align 4
  %__a.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %__b.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  store %"struct.std::pair.32"* %this, %"struct.std::pair.32"** %this.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %__a, %"class.boost::range_detail::integer_iterator"** %__a.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %__b, %"class.boost::range_detail::integer_iterator"** %__b.addr, align 4
  %this1 = load %"struct.std::pair.32"** %this.addr
  %first = getelementptr inbounds %"struct.std::pair.32"* %this1, i32 0, i32 0
  %0 = load %"class.boost::range_detail::integer_iterator"** %__a.addr, align 4
  %1 = bitcast %"class.boost::range_detail::integer_iterator"* %first to i8*
  %2 = bitcast %"class.boost::range_detail::integer_iterator"* %0 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 4, i32 4, i1 false)
  %second = getelementptr inbounds %"struct.std::pair.32"* %this1, i32 0, i32 1
  %3 = load %"class.boost::range_detail::integer_iterator"** %__b.addr, align 4
  %4 = bitcast %"class.boost::range_detail::integer_iterator"* %second to i8*
  %5 = bitcast %"class.boost::range_detail::integer_iterator"* %3 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %4, i8* %5, i32 4, i32 4, i1 false)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples5tupleIRNS_12range_detail16integer_iteratorIjEES5_NS0_9null_typeES6_S6_S6_S6_S6_S6_S6_EC1ES5_S5_(%"class.boost::tuples::tuple"* %this, %"class.boost::range_detail::integer_iterator"* %t0, %"class.boost::range_detail::integer_iterator"* %t1) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::tuples::tuple"*, align 4
  %t0.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %t1.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  store %"class.boost::tuples::tuple"* %this, %"class.boost::tuples::tuple"** %this.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %t0, %"class.boost::range_detail::integer_iterator"** %t0.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %t1, %"class.boost::range_detail::integer_iterator"** %t1.addr, align 4
  %this1 = load %"class.boost::tuples::tuple"** %this.addr
  %0 = load %"class.boost::range_detail::integer_iterator"** %t0.addr
  %1 = load %"class.boost::range_detail::integer_iterator"** %t1.addr
  call void @_ZN5boost6tuples5tupleIRNS_12range_detail16integer_iteratorIjEES5_NS0_9null_typeES6_S6_S6_S6_S6_S6_S6_EC2ES5_S5_(%"class.boost::tuples::tuple"* %this1, %"class.boost::range_detail::integer_iterator"* %0, %"class.boost::range_detail::integer_iterator"* %1)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples5tupleIRNS_12range_detail16integer_iteratorIjEES5_NS0_9null_typeES6_S6_S6_S6_S6_S6_S6_EC2ES5_S5_(%"class.boost::tuples::tuple"* %this, %"class.boost::range_detail::integer_iterator"* %t0, %"class.boost::range_detail::integer_iterator"* %t1) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::tuples::tuple"*, align 4
  %t0.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %t1.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %ref.tmp = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp2 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp3 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp4 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp5 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp6 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp7 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp8 = alloca %"struct.boost::tuples::null_type", align 1
  store %"class.boost::tuples::tuple"* %this, %"class.boost::tuples::tuple"** %this.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %t0, %"class.boost::range_detail::integer_iterator"** %t0.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %t1, %"class.boost::range_detail::integer_iterator"** %t1.addr, align 4
  %this1 = load %"class.boost::tuples::tuple"** %this.addr
  %0 = bitcast %"class.boost::tuples::tuple"* %this1 to %"struct.boost::tuples::cons"*
  %1 = load %"class.boost::range_detail::integer_iterator"** %t0.addr, align 4
  %2 = load %"class.boost::range_detail::integer_iterator"** %t1.addr, align 4
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp2)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp3)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp4)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp5)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp6)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp7)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp8)
  call void @_ZN5boost6tuples4consIRNS_12range_detail16integer_iteratorIjEENS1_IS5_NS0_9null_typeEEEEC2IS4_S4_KS6_SA_SA_SA_SA_SA_SA_SA_EERT_RT0_RT1_RT2_RT3_RT4_RT5_RT6_RT7_RT8_(%"struct.boost::tuples::cons"* %0, %"class.boost::range_detail::integer_iterator"* %1, %"class.boost::range_detail::integer_iterator"* %2, %"struct.boost::tuples::null_type"* %ref.tmp, %"struct.boost::tuples::null_type"* %ref.tmp2, %"struct.boost::tuples::null_type"* %ref.tmp3, %"struct.boost::tuples::null_type"* %ref.tmp4, %"struct.boost::tuples::null_type"* %ref.tmp5, %"struct.boost::tuples::null_type"* %ref.tmp6, %"struct.boost::tuples::null_type"* %ref.tmp7, %"struct.boost::tuples::null_type"* %ref.tmp8)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples4consIRNS_12range_detail16integer_iteratorIjEENS1_IS5_NS0_9null_typeEEEEC2IS4_S4_KS6_SA_SA_SA_SA_SA_SA_SA_EERT_RT0_RT1_RT2_RT3_RT4_RT5_RT6_RT7_RT8_(%"struct.boost::tuples::cons"* %this, %"class.boost::range_detail::integer_iterator"* %t1, %"class.boost::range_detail::integer_iterator"* %t2, %"struct.boost::tuples::null_type"* %t3, %"struct.boost::tuples::null_type"* %t4, %"struct.boost::tuples::null_type"* %t5, %"struct.boost::tuples::null_type"* %t6, %"struct.boost::tuples::null_type"* %t7, %"struct.boost::tuples::null_type"* %t8, %"struct.boost::tuples::null_type"* %t9, %"struct.boost::tuples::null_type"* %t10) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::tuples::cons"*, align 4
  %t1.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %t2.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %t3.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t4.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t5.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t6.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t7.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t8.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t9.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t10.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %ref.tmp = alloca %"struct.boost::tuples::null_type", align 1
  store %"struct.boost::tuples::cons"* %this, %"struct.boost::tuples::cons"** %this.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %t1, %"class.boost::range_detail::integer_iterator"** %t1.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %t2, %"class.boost::range_detail::integer_iterator"** %t2.addr, align 4
  store %"struct.boost::tuples::null_type"* %t3, %"struct.boost::tuples::null_type"** %t3.addr, align 4
  store %"struct.boost::tuples::null_type"* %t4, %"struct.boost::tuples::null_type"** %t4.addr, align 4
  store %"struct.boost::tuples::null_type"* %t5, %"struct.boost::tuples::null_type"** %t5.addr, align 4
  store %"struct.boost::tuples::null_type"* %t6, %"struct.boost::tuples::null_type"** %t6.addr, align 4
  store %"struct.boost::tuples::null_type"* %t7, %"struct.boost::tuples::null_type"** %t7.addr, align 4
  store %"struct.boost::tuples::null_type"* %t8, %"struct.boost::tuples::null_type"** %t8.addr, align 4
  store %"struct.boost::tuples::null_type"* %t9, %"struct.boost::tuples::null_type"** %t9.addr, align 4
  store %"struct.boost::tuples::null_type"* %t10, %"struct.boost::tuples::null_type"** %t10.addr, align 4
  %this1 = load %"struct.boost::tuples::cons"** %this.addr
  %0 = getelementptr inbounds %"struct.boost::tuples::cons"* %this1, i32 0, i32 0
  %1 = load %"class.boost::range_detail::integer_iterator"** %t1.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %1, %"class.boost::range_detail::integer_iterator"** %0, align 4
  %tail = getelementptr inbounds %"struct.boost::tuples::cons"* %this1, i32 0, i32 1
  %2 = load %"class.boost::range_detail::integer_iterator"** %t2.addr, align 4
  %3 = load %"struct.boost::tuples::null_type"** %t3.addr, align 4
  %4 = load %"struct.boost::tuples::null_type"** %t4.addr, align 4
  %5 = load %"struct.boost::tuples::null_type"** %t5.addr, align 4
  %6 = load %"struct.boost::tuples::null_type"** %t6.addr, align 4
  %7 = load %"struct.boost::tuples::null_type"** %t7.addr, align 4
  %8 = load %"struct.boost::tuples::null_type"** %t8.addr, align 4
  %9 = load %"struct.boost::tuples::null_type"** %t9.addr, align 4
  %10 = load %"struct.boost::tuples::null_type"** %t10.addr, align 4
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp)
  call void @_ZN5boost6tuples4consIRNS_12range_detail16integer_iteratorIjEENS0_9null_typeEEC1IS4_EERT_RKS6_SC_SC_SC_SC_SC_SC_SC_SC_(%"struct.boost::tuples::cons.31"* %tail, %"class.boost::range_detail::integer_iterator"* %2, %"struct.boost::tuples::null_type"* %3, %"struct.boost::tuples::null_type"* %4, %"struct.boost::tuples::null_type"* %5, %"struct.boost::tuples::null_type"* %6, %"struct.boost::tuples::null_type"* %7, %"struct.boost::tuples::null_type"* %8, %"struct.boost::tuples::null_type"* %9, %"struct.boost::tuples::null_type"* %10, %"struct.boost::tuples::null_type"* %ref.tmp)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples4consIRNS_12range_detail16integer_iteratorIjEENS0_9null_typeEEC1IS4_EERT_RKS6_SC_SC_SC_SC_SC_SC_SC_SC_(%"struct.boost::tuples::cons.31"* %this, %"class.boost::range_detail::integer_iterator"* %t1, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::tuples::cons.31"*, align 4
  %t1.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr1 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr2 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr3 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr4 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr5 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr6 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr7 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr8 = alloca %"struct.boost::tuples::null_type"*, align 4
  store %"struct.boost::tuples::cons.31"* %this, %"struct.boost::tuples::cons.31"** %this.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %t1, %"class.boost::range_detail::integer_iterator"** %t1.addr, align 4
  store %"struct.boost::tuples::null_type"* %0, %"struct.boost::tuples::null_type"** %.addr, align 4
  store %"struct.boost::tuples::null_type"* %1, %"struct.boost::tuples::null_type"** %.addr1, align 4
  store %"struct.boost::tuples::null_type"* %2, %"struct.boost::tuples::null_type"** %.addr2, align 4
  store %"struct.boost::tuples::null_type"* %3, %"struct.boost::tuples::null_type"** %.addr3, align 4
  store %"struct.boost::tuples::null_type"* %4, %"struct.boost::tuples::null_type"** %.addr4, align 4
  store %"struct.boost::tuples::null_type"* %5, %"struct.boost::tuples::null_type"** %.addr5, align 4
  store %"struct.boost::tuples::null_type"* %6, %"struct.boost::tuples::null_type"** %.addr6, align 4
  store %"struct.boost::tuples::null_type"* %7, %"struct.boost::tuples::null_type"** %.addr7, align 4
  store %"struct.boost::tuples::null_type"* %8, %"struct.boost::tuples::null_type"** %.addr8, align 4
  %this9 = load %"struct.boost::tuples::cons.31"** %this.addr
  %9 = load %"class.boost::range_detail::integer_iterator"** %t1.addr
  %10 = load %"struct.boost::tuples::null_type"** %.addr
  %11 = load %"struct.boost::tuples::null_type"** %.addr1
  %12 = load %"struct.boost::tuples::null_type"** %.addr2
  %13 = load %"struct.boost::tuples::null_type"** %.addr3
  %14 = load %"struct.boost::tuples::null_type"** %.addr4
  %15 = load %"struct.boost::tuples::null_type"** %.addr5
  %16 = load %"struct.boost::tuples::null_type"** %.addr6
  %17 = load %"struct.boost::tuples::null_type"** %.addr7
  %18 = load %"struct.boost::tuples::null_type"** %.addr8
  call void @_ZN5boost6tuples4consIRNS_12range_detail16integer_iteratorIjEENS0_9null_typeEEC2IS4_EERT_RKS6_SC_SC_SC_SC_SC_SC_SC_SC_(%"struct.boost::tuples::cons.31"* %this9, %"class.boost::range_detail::integer_iterator"* %9, %"struct.boost::tuples::null_type"* %10, %"struct.boost::tuples::null_type"* %11, %"struct.boost::tuples::null_type"* %12, %"struct.boost::tuples::null_type"* %13, %"struct.boost::tuples::null_type"* %14, %"struct.boost::tuples::null_type"* %15, %"struct.boost::tuples::null_type"* %16, %"struct.boost::tuples::null_type"* %17, %"struct.boost::tuples::null_type"* %18)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples4consIRNS_12range_detail16integer_iteratorIjEENS0_9null_typeEEC2IS4_EERT_RKS6_SC_SC_SC_SC_SC_SC_SC_SC_(%"struct.boost::tuples::cons.31"* %this, %"class.boost::range_detail::integer_iterator"* %t1, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::tuples::cons.31"*, align 4
  %t1.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr1 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr2 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr3 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr4 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr5 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr6 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr7 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr8 = alloca %"struct.boost::tuples::null_type"*, align 4
  store %"struct.boost::tuples::cons.31"* %this, %"struct.boost::tuples::cons.31"** %this.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %t1, %"class.boost::range_detail::integer_iterator"** %t1.addr, align 4
  store %"struct.boost::tuples::null_type"* %0, %"struct.boost::tuples::null_type"** %.addr, align 4
  store %"struct.boost::tuples::null_type"* %1, %"struct.boost::tuples::null_type"** %.addr1, align 4
  store %"struct.boost::tuples::null_type"* %2, %"struct.boost::tuples::null_type"** %.addr2, align 4
  store %"struct.boost::tuples::null_type"* %3, %"struct.boost::tuples::null_type"** %.addr3, align 4
  store %"struct.boost::tuples::null_type"* %4, %"struct.boost::tuples::null_type"** %.addr4, align 4
  store %"struct.boost::tuples::null_type"* %5, %"struct.boost::tuples::null_type"** %.addr5, align 4
  store %"struct.boost::tuples::null_type"* %6, %"struct.boost::tuples::null_type"** %.addr6, align 4
  store %"struct.boost::tuples::null_type"* %7, %"struct.boost::tuples::null_type"** %.addr7, align 4
  store %"struct.boost::tuples::null_type"* %8, %"struct.boost::tuples::null_type"** %.addr8, align 4
  %this9 = load %"struct.boost::tuples::cons.31"** %this.addr
  %9 = getelementptr inbounds %"struct.boost::tuples::cons.31"* %this9, i32 0, i32 0
  %10 = load %"class.boost::range_detail::integer_iterator"** %t1.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %10, %"class.boost::range_detail::integer_iterator"** %9, align 4
  ret void
}

define linkonce_odr void @_ZN5boost12range_detail16integer_iteratorIjEC2Ev(%"class.boost::range_detail::integer_iterator"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  store %"class.boost::range_detail::integer_iterator"* %this, %"class.boost::range_detail::integer_iterator"** %this.addr, align 4
  %this1 = load %"class.boost::range_detail::integer_iterator"** %this.addr
  %0 = bitcast %"class.boost::range_detail::integer_iterator"* %this1 to %"class.boost::iterator_facade"*
  %m_value = getelementptr inbounds %"class.boost::range_detail::integer_iterator"* %this1, i32 0, i32 0
  store i32 0, i32* %m_value, align 4
  ret void
}

define linkonce_odr void @_ZN5boost5queueIjSt5dequeIjSaIjEEEC2Ev(%"class.boost::queue"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::queue"*, align 4
  store %"class.boost::queue"* %this, %"class.boost::queue"** %this.addr, align 4
  %this1 = load %"class.boost::queue"** %this.addr
  %c = getelementptr inbounds %"class.boost::queue"* %this1, i32 0, i32 0
  call void @_ZNSt5dequeIjSaIjEEC1Ev(%"class.std::deque"* %c)
  ret void
}

define linkonce_odr void @_ZNSt5dequeIjSaIjEEC1Ev(%"class.std::deque"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::deque"*, align 4
  store %"class.std::deque"* %this, %"class.std::deque"** %this.addr, align 4
  %this1 = load %"class.std::deque"** %this.addr
  call void @_ZNSt5dequeIjSaIjEEC2Ev(%"class.std::deque"* %this1)
  ret void
}

define linkonce_odr void @_ZNSt5dequeIjSaIjEEC2Ev(%"class.std::deque"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::deque"*, align 4
  store %"class.std::deque"* %this, %"class.std::deque"** %this.addr, align 4
  %this1 = load %"class.std::deque"** %this.addr
  %0 = bitcast %"class.std::deque"* %this1 to %"class.std::_Deque_base"*
  call void @_ZNSt11_Deque_baseIjSaIjEEC2Ev(%"class.std::_Deque_base"* %0)
  ret void
}

define linkonce_odr void @_ZNSt11_Deque_baseIjSaIjEEC2Ev(%"class.std::_Deque_base"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::_Deque_base"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::_Deque_base"* %this, %"class.std::_Deque_base"** %this.addr, align 4
  %this1 = load %"class.std::_Deque_base"** %this.addr
  %_M_impl = getelementptr inbounds %"class.std::_Deque_base"* %this1, i32 0, i32 0
  call void @_ZNSt11_Deque_baseIjSaIjEE11_Deque_implC1Ev(%"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl)
  invoke void @_ZNSt11_Deque_baseIjSaIjEE17_M_initialize_mapEj(%"class.std::_Deque_base"* %this1, i32 0)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  ret void

lpad:                                             ; preds = %entry
  %0 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %1 = extractvalue { i8*, i32 } %0, 0
  store i8* %1, i8** %exn.slot
  %2 = extractvalue { i8*, i32 } %0, 1
  store i32 %2, i32* %ehselector.slot
  call void @_ZNSt11_Deque_baseIjSaIjEE11_Deque_implD1Ev(%"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val2
}

define linkonce_odr void @_ZNSt11_Deque_baseIjSaIjEE11_Deque_implC1Ev(%"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"*, align 4
  store %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %this, %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"** %this.addr
  call void @_ZNSt11_Deque_baseIjSaIjEE11_Deque_implC2Ev(%"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %this1)
  ret void
}

define linkonce_odr void @_ZNSt11_Deque_baseIjSaIjEE17_M_initialize_mapEj(%"class.std::_Deque_base"* %this, i32 %__num_elements) align 2 {
entry:
  %this.addr = alloca %"class.std::_Deque_base"*, align 4
  %__num_elements.addr = alloca i32, align 4
  %__num_nodes = alloca i32, align 4
  %ref.tmp = alloca i32, align 4
  %ref.tmp3 = alloca i32, align 4
  %__nstart = alloca i32**, align 4
  %__nfinish = alloca i32**, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::_Deque_base"* %this, %"class.std::_Deque_base"** %this.addr, align 4
  store i32 %__num_elements, i32* %__num_elements.addr, align 4
  %this1 = load %"class.std::_Deque_base"** %this.addr
  %0 = load i32* %__num_elements.addr, align 4
  %call = call i32 @_ZSt16__deque_buf_sizej(i32 4)
  %div = udiv i32 %0, %call
  %add = add i32 %div, 1
  store i32 %add, i32* %__num_nodes, align 4
  store i32 8, i32* %ref.tmp, align 4
  %1 = load i32* %__num_nodes, align 4
  %add2 = add i32 %1, 2
  store i32 %add2, i32* %ref.tmp3, align 4
  %call4 = call i32* @_ZSt3maxIjERKT_S2_S2_(i32* %ref.tmp, i32* %ref.tmp3)
  %2 = load i32* %call4
  %_M_impl = getelementptr inbounds %"class.std::_Deque_base"* %this1, i32 0, i32 0
  %_M_map_size = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl, i32 0, i32 1
  store i32 %2, i32* %_M_map_size, align 4
  %_M_impl5 = getelementptr inbounds %"class.std::_Deque_base"* %this1, i32 0, i32 0
  %_M_map_size6 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl5, i32 0, i32 1
  %3 = load i32* %_M_map_size6, align 4
  %call7 = call i32** @_ZNSt11_Deque_baseIjSaIjEE15_M_allocate_mapEj(%"class.std::_Deque_base"* %this1, i32 %3)
  %_M_impl8 = getelementptr inbounds %"class.std::_Deque_base"* %this1, i32 0, i32 0
  %_M_map = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl8, i32 0, i32 0
  store i32** %call7, i32*** %_M_map, align 4
  %_M_impl9 = getelementptr inbounds %"class.std::_Deque_base"* %this1, i32 0, i32 0
  %_M_map10 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl9, i32 0, i32 0
  %4 = load i32*** %_M_map10, align 4
  %_M_impl11 = getelementptr inbounds %"class.std::_Deque_base"* %this1, i32 0, i32 0
  %_M_map_size12 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl11, i32 0, i32 1
  %5 = load i32* %_M_map_size12, align 4
  %6 = load i32* %__num_nodes, align 4
  %sub = sub i32 %5, %6
  %div13 = udiv i32 %sub, 2
  %add.ptr = getelementptr inbounds i32** %4, i32 %div13
  store i32** %add.ptr, i32*** %__nstart, align 4
  %7 = load i32*** %__nstart, align 4
  %8 = load i32* %__num_nodes, align 4
  %add.ptr14 = getelementptr inbounds i32** %7, i32 %8
  store i32** %add.ptr14, i32*** %__nfinish, align 4
  %9 = load i32*** %__nstart, align 4
  %10 = load i32*** %__nfinish, align 4
  invoke void @_ZNSt11_Deque_baseIjSaIjEE15_M_create_nodesEPPjS3_(%"class.std::_Deque_base"* %this1, i32** %9, i32** %10)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  br label %try.cont

lpad:                                             ; preds = %entry
  %11 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  %12 = extractvalue { i8*, i32 } %11, 0
  store i8* %12, i8** %exn.slot
  %13 = extractvalue { i8*, i32 } %11, 1
  store i32 %13, i32* %ehselector.slot
  br label %catch

catch:                                            ; preds = %lpad
  %exn = load i8** %exn.slot
  %14 = call i8* @__cxa_begin_catch(i8* %exn) nounwind
  %_M_impl15 = getelementptr inbounds %"class.std::_Deque_base"* %this1, i32 0, i32 0
  %_M_map16 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl15, i32 0, i32 0
  %15 = load i32*** %_M_map16, align 4
  %_M_impl17 = getelementptr inbounds %"class.std::_Deque_base"* %this1, i32 0, i32 0
  %_M_map_size18 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl17, i32 0, i32 1
  %16 = load i32* %_M_map_size18, align 4
  invoke void @_ZNSt11_Deque_baseIjSaIjEE17_M_deallocate_mapEPPjj(%"class.std::_Deque_base"* %this1, i32** %15, i32 %16)
          to label %invoke.cont20 unwind label %lpad19

invoke.cont20:                                    ; preds = %catch
  %_M_impl21 = getelementptr inbounds %"class.std::_Deque_base"* %this1, i32 0, i32 0
  %_M_map22 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl21, i32 0, i32 0
  store i32** null, i32*** %_M_map22, align 4
  %_M_impl23 = getelementptr inbounds %"class.std::_Deque_base"* %this1, i32 0, i32 0
  %_M_map_size24 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl23, i32 0, i32 1
  store i32 0, i32* %_M_map_size24, align 4
  invoke void @__cxa_rethrow() noreturn
          to label %unreachable unwind label %lpad19

lpad19:                                           ; preds = %invoke.cont20, %catch
  %17 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %18 = extractvalue { i8*, i32 } %17, 0
  store i8* %18, i8** %exn.slot
  %19 = extractvalue { i8*, i32 } %17, 1
  store i32 %19, i32* %ehselector.slot
  invoke void @__cxa_end_catch()
          to label %invoke.cont25 unwind label %terminate.lpad

invoke.cont25:                                    ; preds = %lpad19
  br label %eh.resume

try.cont:                                         ; preds = %invoke.cont
  %_M_impl26 = getelementptr inbounds %"class.std::_Deque_base"* %this1, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl26, i32 0, i32 2
  %20 = load i32*** %__nstart, align 4
  call void @_ZNSt15_Deque_iteratorIjRjPjE11_M_set_nodeEPS1_(%"struct.std::_Deque_iterator"* %_M_start, i32** %20)
  %_M_impl27 = getelementptr inbounds %"class.std::_Deque_base"* %this1, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl27, i32 0, i32 3
  %21 = load i32*** %__nfinish, align 4
  %add.ptr28 = getelementptr inbounds i32** %21, i32 -1
  call void @_ZNSt15_Deque_iteratorIjRjPjE11_M_set_nodeEPS1_(%"struct.std::_Deque_iterator"* %_M_finish, i32** %add.ptr28)
  %_M_impl29 = getelementptr inbounds %"class.std::_Deque_base"* %this1, i32 0, i32 0
  %_M_start30 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl29, i32 0, i32 2
  %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_start30, i32 0, i32 1
  %22 = load i32** %_M_first, align 4
  %_M_impl31 = getelementptr inbounds %"class.std::_Deque_base"* %this1, i32 0, i32 0
  %_M_start32 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl31, i32 0, i32 2
  %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_start32, i32 0, i32 0
  store i32* %22, i32** %_M_cur, align 4
  %_M_impl33 = getelementptr inbounds %"class.std::_Deque_base"* %this1, i32 0, i32 0
  %_M_finish34 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl33, i32 0, i32 3
  %_M_first35 = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_finish34, i32 0, i32 1
  %23 = load i32** %_M_first35, align 4
  %24 = load i32* %__num_elements.addr, align 4
  %call36 = call i32 @_ZSt16__deque_buf_sizej(i32 4)
  %rem = urem i32 %24, %call36
  %add.ptr37 = getelementptr inbounds i32* %23, i32 %rem
  %_M_impl38 = getelementptr inbounds %"class.std::_Deque_base"* %this1, i32 0, i32 0
  %_M_finish39 = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %_M_impl38, i32 0, i32 3
  %_M_cur40 = getelementptr inbounds %"struct.std::_Deque_iterator"* %_M_finish39, i32 0, i32 0
  store i32* %add.ptr37, i32** %_M_cur40, align 4
  ret void

eh.resume:                                        ; preds = %invoke.cont25
  %exn41 = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn41, 0
  %lpad.val42 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val42

terminate.lpad:                                   ; preds = %lpad19
  %25 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable

unreachable:                                      ; preds = %invoke.cont20
  unreachable
}

define linkonce_odr void @_ZNSt11_Deque_baseIjSaIjEE15_M_create_nodesEPPjS3_(%"class.std::_Deque_base"* %this, i32** %__nstart, i32** %__nfinish) align 2 {
entry:
  %this.addr = alloca %"class.std::_Deque_base"*, align 4
  %__nstart.addr = alloca i32**, align 4
  %__nfinish.addr = alloca i32**, align 4
  %__cur = alloca i32**, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::_Deque_base"* %this, %"class.std::_Deque_base"** %this.addr, align 4
  store i32** %__nstart, i32*** %__nstart.addr, align 4
  store i32** %__nfinish, i32*** %__nfinish.addr, align 4
  %this1 = load %"class.std::_Deque_base"** %this.addr
  %0 = load i32*** %__nstart.addr, align 4
  store i32** %0, i32*** %__cur, align 4
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %1 = load i32*** %__cur, align 4
  %2 = load i32*** %__nfinish.addr, align 4
  %cmp = icmp ult i32** %1, %2
  br i1 %cmp, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %call = invoke i32* @_ZNSt11_Deque_baseIjSaIjEE16_M_allocate_nodeEv(%"class.std::_Deque_base"* %this1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %for.body
  %3 = load i32*** %__cur, align 4
  store i32* %call, i32** %3, align 4
  br label %for.inc

for.inc:                                          ; preds = %invoke.cont
  %4 = load i32*** %__cur, align 4
  %incdec.ptr = getelementptr inbounds i32** %4, i32 1
  store i32** %incdec.ptr, i32*** %__cur, align 4
  br label %for.cond

lpad:                                             ; preds = %for.body
  %5 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  %6 = extractvalue { i8*, i32 } %5, 0
  store i8* %6, i8** %exn.slot
  %7 = extractvalue { i8*, i32 } %5, 1
  store i32 %7, i32* %ehselector.slot
  br label %catch

catch:                                            ; preds = %lpad
  %exn = load i8** %exn.slot
  %8 = call i8* @__cxa_begin_catch(i8* %exn) nounwind
  %9 = load i32*** %__nstart.addr, align 4
  %10 = load i32*** %__cur, align 4
  invoke void @_ZNSt11_Deque_baseIjSaIjEE16_M_destroy_nodesEPPjS3_(%"class.std::_Deque_base"* %this1, i32** %9, i32** %10)
          to label %invoke.cont3 unwind label %lpad2

invoke.cont3:                                     ; preds = %catch
  invoke void @__cxa_rethrow() noreturn
          to label %unreachable unwind label %lpad2

for.end:                                          ; preds = %for.cond
  br label %try.cont

lpad2:                                            ; preds = %invoke.cont3, %catch
  %11 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %12 = extractvalue { i8*, i32 } %11, 0
  store i8* %12, i8** %exn.slot
  %13 = extractvalue { i8*, i32 } %11, 1
  store i32 %13, i32* %ehselector.slot
  invoke void @__cxa_end_catch()
          to label %invoke.cont4 unwind label %terminate.lpad

invoke.cont4:                                     ; preds = %lpad2
  br label %eh.resume

try.cont:                                         ; preds = %for.end
  ret void

eh.resume:                                        ; preds = %invoke.cont4
  %exn5 = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn5, 0
  %lpad.val6 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val6

terminate.lpad:                                   ; preds = %lpad2
  %14 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable

unreachable:                                      ; preds = %invoke.cont3
  unreachable
}

define linkonce_odr void @_ZNSt11_Deque_baseIjSaIjEE11_Deque_implC2Ev(%"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %this, %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"** %this.addr
  %0 = bitcast %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %this1 to %"class.std::allocator.5"*
  call void @_ZNSaIjEC2Ev(%"class.std::allocator.5"* %0) nounwind
  %_M_map = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %this1, i32 0, i32 0
  store i32** null, i32*** %_M_map, align 4
  %_M_map_size = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %this1, i32 0, i32 1
  store i32 0, i32* %_M_map_size, align 4
  %_M_start = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %this1, i32 0, i32 2
  invoke void @_ZNSt15_Deque_iteratorIjRjPjEC1Ev(%"struct.std::_Deque_iterator"* %_M_start)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %_M_finish = getelementptr inbounds %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %this1, i32 0, i32 3
  invoke void @_ZNSt15_Deque_iteratorIjRjPjEC1Ev(%"struct.std::_Deque_iterator"* %_M_finish)
          to label %invoke.cont2 unwind label %lpad

invoke.cont2:                                     ; preds = %invoke.cont
  ret void

lpad:                                             ; preds = %invoke.cont, %entry
  %1 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %2 = extractvalue { i8*, i32 } %1, 0
  store i8* %2, i8** %exn.slot
  %3 = extractvalue { i8*, i32 } %1, 1
  store i32 %3, i32* %ehselector.slot
  %4 = bitcast %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int> >::_Deque_impl"* %this1 to %"class.std::allocator.5"*
  call void @_ZNSaIjED2Ev(%"class.std::allocator.5"* %4) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val3
}

define linkonce_odr void @_ZNSaIjEC2Ev(%"class.std::allocator.5"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.5"*, align 4
  store %"class.std::allocator.5"* %this, %"class.std::allocator.5"** %this.addr, align 4
  %this1 = load %"class.std::allocator.5"** %this.addr
  %0 = bitcast %"class.std::allocator.5"* %this1 to %"class.__gnu_cxx::new_allocator.6"*
  call void @_ZN9__gnu_cxx13new_allocatorIjEC2Ev(%"class.__gnu_cxx::new_allocator.6"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZNSt15_Deque_iteratorIjRjPjEC1Ev(%"struct.std::_Deque_iterator"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_Deque_iterator"*, align 4
  store %"struct.std::_Deque_iterator"* %this, %"struct.std::_Deque_iterator"** %this.addr, align 4
  %this1 = load %"struct.std::_Deque_iterator"** %this.addr
  call void @_ZNSt15_Deque_iteratorIjRjPjEC2Ev(%"struct.std::_Deque_iterator"* %this1)
  ret void
}

define linkonce_odr void @_ZNSt15_Deque_iteratorIjRjPjEC2Ev(%"struct.std::_Deque_iterator"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_Deque_iterator"*, align 4
  store %"struct.std::_Deque_iterator"* %this, %"struct.std::_Deque_iterator"** %this.addr, align 4
  %this1 = load %"struct.std::_Deque_iterator"** %this.addr
  %_M_cur = getelementptr inbounds %"struct.std::_Deque_iterator"* %this1, i32 0, i32 0
  store i32* null, i32** %_M_cur, align 4
  %_M_first = getelementptr inbounds %"struct.std::_Deque_iterator"* %this1, i32 0, i32 1
  store i32* null, i32** %_M_first, align 4
  %_M_last = getelementptr inbounds %"struct.std::_Deque_iterator"* %this1, i32 0, i32 2
  store i32* null, i32** %_M_last, align 4
  %_M_node = getelementptr inbounds %"struct.std::_Deque_iterator"* %this1, i32 0, i32 3
  store i32** null, i32*** %_M_node, align 4
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIjEC2Ev(%"class.__gnu_cxx::new_allocator.6"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.6"*, align 4
  store %"class.__gnu_cxx::new_allocator.6"* %this, %"class.__gnu_cxx::new_allocator.6"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.6"** %this.addr
  ret void
}

define linkonce_odr void @_ZN5boost16bgl_named_paramsINS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES3_INS_16on_non_tree_edgeEEEEENS_15graph_visitor_tENS_11no_propertyEEC1ES9_(%"struct.boost::bgl_named_params.17"* %this, %"class.boost::bfs_visitor"* %v) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::bgl_named_params.17"*, align 4
  store %"struct.boost::bgl_named_params.17"* %this, %"struct.boost::bgl_named_params.17"** %this.addr, align 4
  %this1 = load %"struct.boost::bgl_named_params.17"** %this.addr
  call void @_ZN5boost16bgl_named_paramsINS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES3_INS_16on_non_tree_edgeEEEEENS_15graph_visitor_tENS_11no_propertyEEC2ES9_(%"struct.boost::bgl_named_params.17"* %this1, %"class.boost::bfs_visitor"* %v)
  ret void
}

define linkonce_odr void @_ZN5boost16bgl_named_paramsINS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES3_INS_16on_non_tree_edgeEEEEENS_15graph_visitor_tENS_11no_propertyEEC2ES9_(%"struct.boost::bgl_named_params.17"* %this, %"class.boost::bfs_visitor"* %v) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::bgl_named_params.17"*, align 4
  store %"struct.boost::bgl_named_params.17"* %this, %"struct.boost::bgl_named_params.17"** %this.addr, align 4
  %this1 = load %"struct.boost::bgl_named_params.17"** %this.addr
  %m_value = getelementptr inbounds %"struct.boost::bgl_named_params.17"* %this1, i32 0, i32 0
  call void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEEC1ERKS8_(%"class.boost::bfs_visitor"* %m_value, %"class.boost::bfs_visitor"* %v)
  %m_base = getelementptr inbounds %"struct.boost::bgl_named_params.17"* %this1, i32 0, i32 1
  ret void
}

define linkonce_odr void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEEC1ES7_(%"class.boost::bfs_visitor"* %this, %"struct.std::pair.18"* %vis) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::bfs_visitor"*, align 4
  store %"class.boost::bfs_visitor"* %this, %"class.boost::bfs_visitor"** %this.addr, align 4
  %this1 = load %"class.boost::bfs_visitor"** %this.addr
  call void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEEC2ES7_(%"class.boost::bfs_visitor"* %this1, %"struct.std::pair.18"* %vis)
  ret void
}

define linkonce_odr void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEEC2ES7_(%"class.boost::bfs_visitor"* %this, %"struct.std::pair.18"* %vis) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::bfs_visitor"*, align 4
  store %"class.boost::bfs_visitor"* %this, %"class.boost::bfs_visitor"** %this.addr, align 4
  %this1 = load %"class.boost::bfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::bfs_visitor"* %this1, i32 0, i32 0
  call void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES0_INS1_16on_non_tree_edgeEEEC1ERKS6_(%"struct.std::pair.18"* %m_vis, %"struct.std::pair.18"* %vis)
  ret void
}

define linkonce_odr void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES0_INS1_16on_non_tree_edgeEEEC1ERKS3_RKS5_(%"struct.std::pair.18"* %this, %struct.edge_printer* %__a, %struct.edge_printer.19* %__b) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.18"*, align 4
  %__a.addr = alloca %struct.edge_printer*, align 4
  %__b.addr = alloca %struct.edge_printer.19*, align 4
  store %"struct.std::pair.18"* %this, %"struct.std::pair.18"** %this.addr, align 4
  store %struct.edge_printer* %__a, %struct.edge_printer** %__a.addr, align 4
  store %struct.edge_printer.19* %__b, %struct.edge_printer.19** %__b.addr, align 4
  %this1 = load %"struct.std::pair.18"** %this.addr
  %0 = load %struct.edge_printer** %__a.addr
  %1 = load %struct.edge_printer.19** %__b.addr
  call void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES0_INS1_16on_non_tree_edgeEEEC2ERKS3_RKS5_(%"struct.std::pair.18"* %this1, %struct.edge_printer* %0, %struct.edge_printer.19* %1)
  ret void
}

define linkonce_odr void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES0_INS1_16on_non_tree_edgeEEEC2ERKS3_RKS5_(%"struct.std::pair.18"* %this, %struct.edge_printer* %__a, %struct.edge_printer.19* %__b) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.18"*, align 4
  %__a.addr = alloca %struct.edge_printer*, align 4
  %__b.addr = alloca %struct.edge_printer.19*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.std::pair.18"* %this, %"struct.std::pair.18"** %this.addr, align 4
  store %struct.edge_printer* %__a, %struct.edge_printer** %__a.addr, align 4
  store %struct.edge_printer.19* %__b, %struct.edge_printer.19** %__b.addr, align 4
  %this1 = load %"struct.std::pair.18"** %this.addr
  %first = getelementptr inbounds %"struct.std::pair.18"* %this1, i32 0, i32 0
  %0 = load %struct.edge_printer** %__a.addr, align 4
  call void @_ZN12edge_printerIN5boost12on_tree_edgeEEC1ERKS2_(%struct.edge_printer* %first, %struct.edge_printer* %0)
  %second = getelementptr inbounds %"struct.std::pair.18"* %this1, i32 0, i32 1
  %1 = load %struct.edge_printer.19** %__b.addr, align 4
  invoke void @_ZN12edge_printerIN5boost16on_non_tree_edgeEEC1ERKS2_(%struct.edge_printer.19* %second, %struct.edge_printer.19* %1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  ret void

lpad:                                             ; preds = %entry
  %2 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %3 = extractvalue { i8*, i32 } %2, 0
  store i8* %3, i8** %exn.slot
  %4 = extractvalue { i8*, i32 } %2, 1
  store i32 %4, i32* %ehselector.slot
  invoke void @_ZN12edge_printerIN5boost12on_tree_edgeEED1Ev(%struct.edge_printer* %first)
          to label %invoke.cont2 unwind label %terminate.lpad

invoke.cont2:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont2
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val3

terminate.lpad:                                   ; preds = %lpad
  %5 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN12edge_printerIN5boost16on_non_tree_edgeEEC1ESs(%struct.edge_printer.19* %this, %"class.std::basic_string"* %edge_t) unnamed_addr align 2 {
entry:
  %this.addr = alloca %struct.edge_printer.19*, align 4
  store %struct.edge_printer.19* %this, %struct.edge_printer.19** %this.addr, align 4
  %this1 = load %struct.edge_printer.19** %this.addr
  call void @_ZN12edge_printerIN5boost16on_non_tree_edgeEEC2ESs(%struct.edge_printer.19* %this1, %"class.std::basic_string"* %edge_t)
  ret void
}

define linkonce_odr void @_ZN12edge_printerIN5boost16on_non_tree_edgeEEC2ESs(%struct.edge_printer.19* %this, %"class.std::basic_string"* %edge_t) unnamed_addr align 2 {
entry:
  %this.addr = alloca %struct.edge_printer.19*, align 4
  store %struct.edge_printer.19* %this, %struct.edge_printer.19** %this.addr, align 4
  %this1 = load %struct.edge_printer.19** %this.addr
  %0 = bitcast %struct.edge_printer.19* %this1 to %"struct.boost::base_visitor.20"*
  %m_edge_type = getelementptr inbounds %struct.edge_printer.19* %this1, i32 0, i32 0
  call void @_ZNSsC1ERKSs(%"class.std::basic_string"* %m_edge_type, %"class.std::basic_string"* %edge_t)
  ret void
}

define linkonce_odr void @_ZN5boost6detail37convert_bgl_params_to_boost_parameterINS_16bgl_named_paramsINS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES4_IS5_INS_12on_back_edgeEES5_INS_24on_forward_or_cross_edgeEEEEEENS_15graph_visitor_tENS_11no_propertyEEEE4convERKSH_(%"struct.boost::parameter::aux::arg_list"* noalias sret %agg.result, %"struct.boost::bgl_named_params"* %x) align 2 {
entry:
  %x.addr = alloca %"struct.boost::bgl_named_params"*, align 4
  %agg.tmp = alloca %"struct.boost::parameter::aux::tagged_argument", align 4
  %ref.tmp = alloca %"struct.boost::parameter::aux::empty_arg_list", align 1
  store %"struct.boost::bgl_named_params"* %x, %"struct.boost::bgl_named_params"** %x.addr, align 4
  %0 = load %"struct.boost::bgl_named_params"** %x.addr, align 4
  %m_value = getelementptr inbounds %"struct.boost::bgl_named_params"* %0, i32 0, i32 0
  call void @_ZN5boost9parameter3aux15tagged_argumentINS_5graph8keywords3tag7visitorEKNS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES8_IS9_INS_12on_back_edgeEES9_INS_24on_forward_or_cross_edgeEEEEEEEC1ERSJ_(%"struct.boost::parameter::aux::tagged_argument"* %agg.tmp, %"class.boost::dfs_visitor"* %m_value)
  %1 = load %"struct.boost::bgl_named_params"** %x.addr, align 4
  %m_base = getelementptr inbounds %"struct.boost::bgl_named_params"* %1, i32 0, i32 1
  call void @_ZN5boost6detail37convert_bgl_params_to_boost_parameterINS_11no_propertyEE4convERKS2_(%"struct.boost::parameter::aux::empty_arg_list"* sret %ref.tmp, %"struct.boost::no_property"* %m_base)
  call void @_ZN5boost9parameter3aux8arg_listINS1_15tagged_argumentINS_5graph8keywords3tag7visitorEKNS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES9_ISA_INS_12on_back_edgeEESA_INS_24on_forward_or_cross_edgeEEEEEEEENS1_14empty_arg_listEEC1ESL_RKSM_(%"struct.boost::parameter::aux::arg_list"* %agg.result, %"struct.boost::parameter::aux::tagged_argument"* byval align 4 %agg.tmp, %"struct.boost::parameter::aux::empty_arg_list"* %ref.tmp)
  ret void
}

define linkonce_odr void @_ZN5boost5graph36depth_first_search_with_named_paramsINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEENS_9parameter3aux8arg_listINS9_15tagged_argumentINS0_8keywords3tag7visitorEKNS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEESG_ISH_INS_12on_back_edgeEESH_INS_24on_forward_or_cross_edgeEEEEEEEENS9_14empty_arg_listEEEEENS_9result_ofIFNS0_6detail23depth_first_search_implIT_EESY_RKT0_EE4typeERKSY_S12_(%"class.boost::adjacency_list"* %param0, %"struct.boost::parameter::aux::arg_list"* %arg_pack) {
entry:
  %param0.addr = alloca %"class.boost::adjacency_list"*, align 4
  %arg_pack.addr = alloca %"struct.boost::parameter::aux::arg_list"*, align 4
  %tmp = alloca %"struct.boost::graph::detail::depth_first_search_impl", align 1
  store %"class.boost::adjacency_list"* %param0, %"class.boost::adjacency_list"** %param0.addr, align 4
  store %"struct.boost::parameter::aux::arg_list"* %arg_pack, %"struct.boost::parameter::aux::arg_list"** %arg_pack.addr, align 4
  %0 = load %"class.boost::adjacency_list"** %param0.addr, align 4
  %1 = load %"struct.boost::parameter::aux::arg_list"** %arg_pack.addr, align 4
  call void @_ZNK5boost5graph6detail23depth_first_search_implINS_14adjacency_listINS_4vecSES4_NS_9directedSENS_11no_propertyES6_S6_NS_5listSEEEEclINS_9parameter3aux8arg_listINSC_15tagged_argumentINS0_8keywords3tag7visitorEKNS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEESJ_ISK_INS_12on_back_edgeEESK_INS_24on_forward_or_cross_edgeEEEEEEEENSC_14empty_arg_listEEEEEvRKS8_RKT_(%"struct.boost::graph::detail::depth_first_search_impl"* %tmp, %"class.boost::adjacency_list"* %0, %"struct.boost::parameter::aux::arg_list"* %1)
  ret void
}

define linkonce_odr void @_ZNK5boost5graph6detail23depth_first_search_implINS_14adjacency_listINS_4vecSES4_NS_9directedSENS_11no_propertyES6_S6_NS_5listSEEEEclINS_9parameter3aux8arg_listINSC_15tagged_argumentINS0_8keywords3tag7visitorEKNS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEESJ_ISK_INS_12on_back_edgeEESK_INS_24on_forward_or_cross_edgeEEEEEEEENSC_14empty_arg_listEEEEEvRKS8_RKT_(%"struct.boost::graph::detail::depth_first_search_impl"* %this, %"class.boost::adjacency_list"* %g, %"struct.boost::parameter::aux::arg_list"* %arg_pack) align 2 {
entry:
  %this.addr = alloca %"struct.boost::graph::detail::depth_first_search_impl"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %arg_pack.addr = alloca %"struct.boost::parameter::aux::arg_list"*, align 4
  %agg.tmp = alloca %"class.boost::dfs_visitor", align 4
  %ref.tmp = alloca %"struct.boost::parameter::aux::default_", align 4
  %ref.tmp2 = alloca %"class.boost::dfs_visitor.43", align 1
  %agg.tmp3 = alloca %"struct.boost::null_visitor", align 1
  %agg.tmp4 = alloca %"class.boost::shared_array_property_map", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %agg.tmp5 = alloca %"struct.boost::parameter::aux::lazy_default", align 4
  %ref.tmp6 = alloca %"struct.boost::detail::get_default_starting_vertex_t", align 4
  store %"struct.boost::graph::detail::depth_first_search_impl"* %this, %"struct.boost::graph::detail::depth_first_search_impl"** %this.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store %"struct.boost::parameter::aux::arg_list"* %arg_pack, %"struct.boost::parameter::aux::arg_list"** %arg_pack.addr, align 4
  %this1 = load %"struct.boost::graph::detail::depth_first_search_impl"** %this.addr
  %0 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %"struct.boost::parameter::aux::arg_list"** %arg_pack.addr, align 4
  %2 = load %"struct.boost::parameter::keyword"** @_ZN5boost5graph8keywords12_GLOBAL__N_18_visitorE, align 4
  call void @_ZN5boost16make_dfs_visitorINS_12null_visitorEEENS_11dfs_visitorIT_EES3_(%"class.boost::dfs_visitor.43"* sret %ref.tmp2)
  call void @_ZNK5boost9parameter7keywordINS_5graph8keywords3tag7visitorEEorINS_11dfs_visitorINS_12null_visitorEEEEENS0_3aux8default_IS5_KT_EERSE_(%"struct.boost::parameter::aux::default_"* sret %ref.tmp, %"struct.boost::parameter::keyword"* %2, %"class.boost::dfs_visitor.43"* %ref.tmp2)
  %call = call %"class.boost::dfs_visitor"* @_ZNK5boost9parameter3aux8arg_listINS1_15tagged_argumentINS_5graph8keywords3tag7visitorEKNS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES9_ISA_INS_12on_back_edgeEESA_INS_24on_forward_or_cross_edgeEEEEEEEENS1_14empty_arg_listEEixIKNS8_INS_12null_visitorEEEEERSK_RKNS1_8default_IS7_T_EE(%"struct.boost::parameter::aux::arg_list"* %1, %"struct.boost::parameter::aux::default_"* %ref.tmp)
  call void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEEC1ERKSB_(%"class.boost::dfs_visitor"* %agg.tmp, %"class.boost::dfs_visitor"* %call)
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = load %"struct.boost::parameter::aux::arg_list"** %arg_pack.addr, align 4
  invoke void @_ZNK5boost6detail35make_property_map_from_arg_pack_genINS_5graph8keywords3tag9color_mapENS_18default_color_typeEEclINS_14adjacency_listINS_4vecSESA_NS_9directedSENS_11no_propertyESC_SC_NS_5listSEEENS_9parameter3aux8arg_listINSG_15tagged_argumentINS4_7visitorEKNS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEESL_ISM_INS_12on_back_edgeEESM_INS_24on_forward_or_cross_edgeEEEEEEEENSG_14empty_arg_listEEEEENS0_9map_makerIT_T0_S5_S6_E8map_typeERKS11_RKS12_(%"class.boost::shared_array_property_map"* sret %agg.tmp4, %"class.boost::detail::make_property_map_from_arg_pack_gen"* @_ZN5boost6detailL28make_color_map_from_arg_packE, %"class.boost::adjacency_list"* %3, %"struct.boost::parameter::aux::arg_list"* %4)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %5 = load %"struct.boost::parameter::aux::arg_list"** %arg_pack.addr, align 4
  %6 = bitcast %"struct.boost::parameter::aux::arg_list"* %5 to %"struct.boost::parameter::aux::empty_arg_list"*
  %7 = load %"struct.boost::parameter::keyword.44"** @_ZN5boost5graph8keywords12_GLOBAL__N_112_root_vertexE, align 4
  %8 = load %"class.boost::adjacency_list"** %g.addr, align 4
  invoke void @_ZN5boost6detail29get_default_starting_vertex_tINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEEEC1ERKS7_(%"struct.boost::detail::get_default_starting_vertex_t"* %ref.tmp6, %"class.boost::adjacency_list"* %8)
          to label %invoke.cont8 unwind label %lpad7

invoke.cont8:                                     ; preds = %invoke.cont
  invoke void @_ZNK5boost9parameter7keywordINS_5graph8keywords3tag11root_vertexEEooINS_6detail29get_default_starting_vertex_tINS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEEEEEENS0_3aux12lazy_defaultIS5_T_EERKSJ_(%"struct.boost::parameter::aux::lazy_default"* sret %agg.tmp5, %"struct.boost::parameter::keyword.44"* %7, %"struct.boost::detail::get_default_starting_vertex_t"* %ref.tmp6)
          to label %invoke.cont9 unwind label %lpad7

invoke.cont9:                                     ; preds = %invoke.cont8
  %call11 = invoke i32 @_ZNK5boost9parameter3aux14empty_arg_listixINS_5graph8keywords3tag11root_vertexENS_6detail29get_default_starting_vertex_tINS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEEEEEENS1_10result_of0IT0_E4typeENS1_12lazy_defaultIT_SI_EE(%"struct.boost::parameter::aux::empty_arg_list"* %6, %"struct.boost::parameter::aux::lazy_default"* byval align 4 %agg.tmp5)
          to label %invoke.cont10 unwind label %lpad7

invoke.cont10:                                    ; preds = %invoke.cont9
  invoke void @_ZN5boost18depth_first_searchINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES8_IS9_INS_12on_back_edgeEES9_INS_24on_forward_or_cross_edgeEEEEEENS_25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapIS4_jEEEEEEvRKT_T0_T1_NS_12graph_traitsISO_E17vertex_descriptorE(%"class.boost::adjacency_list"* %0, %"class.boost::dfs_visitor"* %agg.tmp, %"class.boost::shared_array_property_map"* %agg.tmp4, i32 %call11)
          to label %invoke.cont12 unwind label %lpad7

invoke.cont12:                                    ; preds = %invoke.cont10
  invoke void @_ZN5boost25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED1Ev(%"class.boost::shared_array_property_map"* %agg.tmp4)
          to label %invoke.cont13 unwind label %lpad

invoke.cont13:                                    ; preds = %invoke.cont12
  call void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEED1Ev(%"class.boost::dfs_visitor"* %agg.tmp)
  ret void

lpad:                                             ; preds = %invoke.cont12, %entry
  %9 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %10 = extractvalue { i8*, i32 } %9, 0
  store i8* %10, i8** %exn.slot
  %11 = extractvalue { i8*, i32 } %9, 1
  store i32 %11, i32* %ehselector.slot
  br label %ehcleanup

lpad7:                                            ; preds = %invoke.cont10, %invoke.cont9, %invoke.cont8, %invoke.cont
  %12 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %13 = extractvalue { i8*, i32 } %12, 0
  store i8* %13, i8** %exn.slot
  %14 = extractvalue { i8*, i32 } %12, 1
  store i32 %14, i32* %ehselector.slot
  invoke void @_ZN5boost25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED1Ev(%"class.boost::shared_array_property_map"* %agg.tmp4)
          to label %invoke.cont14 unwind label %terminate.lpad

invoke.cont14:                                    ; preds = %lpad7
  br label %ehcleanup

ehcleanup:                                        ; preds = %invoke.cont14, %lpad
  invoke void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEED1Ev(%"class.boost::dfs_visitor"* %agg.tmp)
          to label %invoke.cont15 unwind label %terminate.lpad

invoke.cont15:                                    ; preds = %ehcleanup
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont15
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val16 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val16

terminate.lpad:                                   ; preds = %ehcleanup, %lpad7
  %15 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost18depth_first_searchINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES8_IS9_INS_12on_back_edgeEES9_INS_24on_forward_or_cross_edgeEEEEEENS_25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapIS4_jEEEEEEvRKT_T0_T1_NS_12graph_traitsISO_E17vertex_descriptorE(%"class.boost::adjacency_list"* %g, %"class.boost::dfs_visitor"* %vis, %"class.boost::shared_array_property_map"* %color, i32 %start_vertex) {
entry:
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %start_vertex.addr = alloca i32, align 4
  %ui = alloca %"class.boost::range_detail::integer_iterator", align 4
  %ui_end = alloca %"class.boost::range_detail::integer_iterator", align 4
  %tmp = alloca %"class.boost::tuples::tuple", align 4
  %ref.tmp = alloca %"struct.std::pair.32", align 4
  %u = alloca i32, align 4
  %ref.tmp6 = alloca i32, align 4
  %agg.tmp = alloca %"class.boost::shared_array_property_map", align 4
  %agg.tmp9 = alloca %"struct.boost::detail::nontruth2", align 1
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %tmp11 = alloca %"class.boost::tuples::tuple", align 4
  %ref.tmp12 = alloca %"struct.std::pair.32", align 4
  %u18 = alloca i32, align 4
  %u_color = alloca i32, align 4
  %agg.tmp26 = alloca %"class.boost::shared_array_property_map", align 4
  %agg.tmp27 = alloca %"struct.boost::detail::nontruth2", align 1
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store i32 %start_vertex, i32* %start_vertex.addr, align 4
  call void @_ZN5boost12range_detail16integer_iteratorIjEC1Ev(%"class.boost::range_detail::integer_iterator"* %ui)
  call void @_ZN5boost12range_detail16integer_iteratorIjEC1Ev(%"class.boost::range_detail::integer_iterator"* %ui_end)
  call void @_ZN5boost6tuples3tieINS_12range_detail16integer_iteratorIjEES4_EENS0_6detail10tie_mapperIT_T0_vvvvvvvvE4typeERS7_RS8_(%"class.boost::tuples::tuple"* sret %tmp, %"class.boost::range_detail::integer_iterator"* %ui, %"class.boost::range_detail::integer_iterator"* %ui_end)
  %0 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = bitcast %"class.boost::adjacency_list"* %0 to %"struct.boost::adj_list_helper"*
  call void @_ZN5boost8verticesINS_6detail12adj_list_genINS_14adjacency_listINS_4vecSES4_NS_9directedSENS_11no_propertyES6_S6_NS_5listSEEES4_S4_S5_S6_S6_S6_S7_E6configENS_21directed_graph_helperISA_EEEESt4pairINT_15vertex_iteratorESF_ERKNS_15adj_list_helperISE_T0_EE(%"struct.std::pair.32"* sret %ref.tmp, %"struct.boost::adj_list_helper"* %1)
  %call = call %"class.boost::tuples::tuple"* @_ZN5boost6tuples5tupleIRNS_12range_detail16integer_iteratorIjEES5_NS0_9null_typeES6_S6_S6_S6_S6_S6_S6_EaSIS4_S4_EERS7_RKSt4pairIT_T0_E(%"class.boost::tuples::tuple"* %tmp, %"struct.std::pair.32"* %ref.tmp)
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %2 = bitcast %"class.boost::range_detail::integer_iterator"* %ui to %"class.boost::iterator_facade"*
  %3 = bitcast %"class.boost::range_detail::integer_iterator"* %ui_end to %"class.boost::iterator_facade"*
  %call1 = call zeroext i1 @_ZN5boostneINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiS3_jS4_jiEENS_6detail23enable_if_interoperableIT_T4_NS_3mpl6apply2INS5_12always_bool2ES7_S8_E4typeEE4typeERKNS_15iterator_facadeIS7_T0_T1_T2_T3_EERKNSG_IS8_T5_T6_T7_T8_EE(%"class.boost::iterator_facade"* %2, %"class.boost::iterator_facade"* %3)
  br i1 %call1, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %4 = bitcast %"class.boost::range_detail::integer_iterator"* %ui to %"class.boost::iterator_facade"*
  %call3 = call i32 @_ZNK5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiEdeEv(%"class.boost::iterator_facade"* %4)
  %call4 = call i32 @_ZN5boost13implicit_castIjEET_NS_3mpl8identityIS1_E4typeE(i32 %call3)
  store i32 %call4, i32* %u, align 4
  %5 = bitcast %"class.boost::shared_array_property_map"* %color to %"struct.boost::put_get_helper.41"*
  %6 = load i32* %u, align 4
  %call5 = call i32 @_ZN5boost12color_traitsINS_18default_color_typeEE5whiteEv()
  store i32 %call5, i32* %ref.tmp6, align 4
  call void @_ZN5boost3putINS_25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEERS2_jS2_EEvRKNS_14put_get_helperIT0_T_EET1_RKT2_(%"struct.boost::put_get_helper.41"* %5, i32 %6, i32* %ref.tmp6)
  %7 = load i32* %u, align 4
  %8 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEE17initialize_vertexIjNS_14adjacency_listINS_4vecSESE_NS_9directedSENS_11no_propertyESG_SG_NS_5listSEEEEEvT_RKT0_(%"class.boost::dfs_visitor"* %vis, i32 %7, %"class.boost::adjacency_list"* %8)
  br label %for.inc

for.inc:                                          ; preds = %for.body
  %9 = bitcast %"class.boost::range_detail::integer_iterator"* %ui to %"class.boost::iterator_facade"*
  %call7 = call %"class.boost::range_detail::integer_iterator"* @_ZN5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiEppEv(%"class.boost::iterator_facade"* %9)
  br label %for.cond

for.end:                                          ; preds = %for.cond
  %10 = load i32* %start_vertex.addr, align 4
  %11 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %call8 = call i32 @_ZN5boost6detail27get_default_starting_vertexINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEEEENS_12graph_traitsIT_E17vertex_descriptorERKS9_(%"class.boost::adjacency_list"* %11)
  %cmp = icmp ne i32 %10, %call8
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %for.end
  %12 = load i32* %start_vertex.addr, align 4
  %13 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEE12start_vertexIjNS_14adjacency_listINS_4vecSESE_NS_9directedSENS_11no_propertyESG_SG_NS_5listSEEEEEvT_RKT0_(%"class.boost::dfs_visitor"* %vis, i32 %12, %"class.boost::adjacency_list"* %13)
  %14 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %15 = load i32* %start_vertex.addr, align 4
  call void @_ZN5boost25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEC1ERKS5_(%"class.boost::shared_array_property_map"* %agg.tmp, %"class.boost::shared_array_property_map"* %color)
  invoke void @_ZN5boost6detail22depth_first_visit_implINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEENS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES9_ISA_INS_12on_back_edgeEESA_INS_24on_forward_or_cross_edgeEEEEEENS_25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapIS5_jEEEENS0_9nontruth2EEEvRKT_NS_12graph_traitsISQ_E17vertex_descriptorERT0_T1_T2_(%"class.boost::adjacency_list"* %14, i32 %15, %"class.boost::dfs_visitor"* %vis, %"class.boost::shared_array_property_map"* %agg.tmp)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %if.then
  call void @_ZN5boost25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED1Ev(%"class.boost::shared_array_property_map"* %agg.tmp)
  br label %if.end

lpad:                                             ; preds = %if.then
  %16 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %17 = extractvalue { i8*, i32 } %16, 0
  store i8* %17, i8** %exn.slot
  %18 = extractvalue { i8*, i32 } %16, 1
  store i32 %18, i32* %ehselector.slot
  invoke void @_ZN5boost25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED1Ev(%"class.boost::shared_array_property_map"* %agg.tmp)
          to label %invoke.cont10 unwind label %terminate.lpad

invoke.cont10:                                    ; preds = %lpad
  br label %eh.resume

if.end:                                           ; preds = %invoke.cont, %for.end
  call void @_ZN5boost6tuples3tieINS_12range_detail16integer_iteratorIjEES4_EENS0_6detail10tie_mapperIT_T0_vvvvvvvvE4typeERS7_RS8_(%"class.boost::tuples::tuple"* sret %tmp11, %"class.boost::range_detail::integer_iterator"* %ui, %"class.boost::range_detail::integer_iterator"* %ui_end)
  %19 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %20 = bitcast %"class.boost::adjacency_list"* %19 to %"struct.boost::adj_list_helper"*
  call void @_ZN5boost8verticesINS_6detail12adj_list_genINS_14adjacency_listINS_4vecSES4_NS_9directedSENS_11no_propertyES6_S6_NS_5listSEEES4_S4_S5_S6_S6_S6_S7_E6configENS_21directed_graph_helperISA_EEEESt4pairINT_15vertex_iteratorESF_ERKNS_15adj_list_helperISE_T0_EE(%"struct.std::pair.32"* sret %ref.tmp12, %"struct.boost::adj_list_helper"* %20)
  %call13 = call %"class.boost::tuples::tuple"* @_ZN5boost6tuples5tupleIRNS_12range_detail16integer_iteratorIjEES5_NS0_9null_typeES6_S6_S6_S6_S6_S6_S6_EaSIS4_S4_EERS7_RKSt4pairIT_T0_E(%"class.boost::tuples::tuple"* %tmp11, %"struct.std::pair.32"* %ref.tmp12)
  br label %for.cond14

for.cond14:                                       ; preds = %for.inc32, %if.end
  %21 = bitcast %"class.boost::range_detail::integer_iterator"* %ui to %"class.boost::iterator_facade"*
  %22 = bitcast %"class.boost::range_detail::integer_iterator"* %ui_end to %"class.boost::iterator_facade"*
  %call15 = call zeroext i1 @_ZN5boostneINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiS3_jS4_jiEENS_6detail23enable_if_interoperableIT_T4_NS_3mpl6apply2INS5_12always_bool2ES7_S8_E4typeEE4typeERKNS_15iterator_facadeIS7_T0_T1_T2_T3_EERKNSG_IS8_T5_T6_T7_T8_EE(%"class.boost::iterator_facade"* %21, %"class.boost::iterator_facade"* %22)
  br i1 %call15, label %for.body16, label %for.end34

for.body16:                                       ; preds = %for.cond14
  %23 = bitcast %"class.boost::range_detail::integer_iterator"* %ui to %"class.boost::iterator_facade"*
  %call19 = call i32 @_ZNK5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiEdeEv(%"class.boost::iterator_facade"* %23)
  %call20 = call i32 @_ZN5boost13implicit_castIjEET_NS_3mpl8identityIS1_E4typeE(i32 %call19)
  store i32 %call20, i32* %u18, align 4
  %24 = bitcast %"class.boost::shared_array_property_map"* %color to %"struct.boost::put_get_helper.41"*
  %call22 = call i32* @_ZN5boost3getINS_25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEERS2_jEET0_RKNS_14put_get_helperIS8_T_EERKT1_(%"struct.boost::put_get_helper.41"* %24, i32* %u18)
  %25 = load i32* %call22
  store i32 %25, i32* %u_color, align 4
  %26 = load i32* %u_color, align 4
  %call23 = call i32 @_ZN5boost12color_traitsINS_18default_color_typeEE5whiteEv()
  %cmp24 = icmp eq i32 %26, %call23
  br i1 %cmp24, label %if.then25, label %if.end31

if.then25:                                        ; preds = %for.body16
  %27 = load i32* %u18, align 4
  %28 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEE12start_vertexIjNS_14adjacency_listINS_4vecSESE_NS_9directedSENS_11no_propertyESG_SG_NS_5listSEEEEEvT_RKT0_(%"class.boost::dfs_visitor"* %vis, i32 %27, %"class.boost::adjacency_list"* %28)
  %29 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %30 = load i32* %u18, align 4
  call void @_ZN5boost25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEC1ERKS5_(%"class.boost::shared_array_property_map"* %agg.tmp26, %"class.boost::shared_array_property_map"* %color)
  invoke void @_ZN5boost6detail22depth_first_visit_implINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEENS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES9_ISA_INS_12on_back_edgeEESA_INS_24on_forward_or_cross_edgeEEEEEENS_25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapIS5_jEEEENS0_9nontruth2EEEvRKT_NS_12graph_traitsISQ_E17vertex_descriptorERT0_T1_T2_(%"class.boost::adjacency_list"* %29, i32 %30, %"class.boost::dfs_visitor"* %vis, %"class.boost::shared_array_property_map"* %agg.tmp26)
          to label %invoke.cont29 unwind label %lpad28

invoke.cont29:                                    ; preds = %if.then25
  call void @_ZN5boost25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED1Ev(%"class.boost::shared_array_property_map"* %agg.tmp26)
  br label %if.end31

lpad28:                                           ; preds = %if.then25
  %31 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %32 = extractvalue { i8*, i32 } %31, 0
  store i8* %32, i8** %exn.slot
  %33 = extractvalue { i8*, i32 } %31, 1
  store i32 %33, i32* %ehselector.slot
  invoke void @_ZN5boost25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED1Ev(%"class.boost::shared_array_property_map"* %agg.tmp26)
          to label %invoke.cont30 unwind label %terminate.lpad

invoke.cont30:                                    ; preds = %lpad28
  br label %eh.resume

if.end31:                                         ; preds = %invoke.cont29, %for.body16
  br label %for.inc32

for.inc32:                                        ; preds = %if.end31
  %34 = bitcast %"class.boost::range_detail::integer_iterator"* %ui to %"class.boost::iterator_facade"*
  %call33 = call %"class.boost::range_detail::integer_iterator"* @_ZN5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiEppEv(%"class.boost::iterator_facade"* %34)
  br label %for.cond14

for.end34:                                        ; preds = %for.cond14
  ret void

eh.resume:                                        ; preds = %invoke.cont30, %invoke.cont10
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val35 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val35

terminate.lpad:                                   ; preds = %lpad28, %lpad
  %35 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEEC1ERKSB_(%"class.boost::dfs_visitor"* %this, %"class.boost::dfs_visitor"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::dfs_visitor"*, align 4
  %.addr = alloca %"class.boost::dfs_visitor"*, align 4
  store %"class.boost::dfs_visitor"* %this, %"class.boost::dfs_visitor"** %this.addr, align 4
  store %"class.boost::dfs_visitor"* %0, %"class.boost::dfs_visitor"** %.addr, align 4
  %this1 = load %"class.boost::dfs_visitor"** %this.addr
  %1 = load %"class.boost::dfs_visitor"** %.addr
  call void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEEC2ERKSB_(%"class.boost::dfs_visitor"* %this1, %"class.boost::dfs_visitor"* %1)
  ret void
}

define linkonce_odr %"class.boost::dfs_visitor"* @_ZNK5boost9parameter3aux8arg_listINS1_15tagged_argumentINS_5graph8keywords3tag7visitorEKNS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES9_ISA_INS_12on_back_edgeEESA_INS_24on_forward_or_cross_edgeEEEEEEEENS1_14empty_arg_listEEixIKNS8_INS_12null_visitorEEEEERSK_RKNS1_8default_IS7_T_EE(%"struct.boost::parameter::aux::arg_list"* %this, %"struct.boost::parameter::aux::default_"* %d) align 2 {
entry:
  %this.addr = alloca %"struct.boost::parameter::aux::arg_list"*, align 4
  %d.addr = alloca %"struct.boost::parameter::aux::default_"*, align 4
  %agg.tmp = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  store %"struct.boost::parameter::aux::arg_list"* %this, %"struct.boost::parameter::aux::arg_list"** %this.addr, align 4
  store %"struct.boost::parameter::aux::default_"* %d, %"struct.boost::parameter::aux::default_"** %d.addr, align 4
  %this1 = load %"struct.boost::parameter::aux::arg_list"** %this.addr
  %0 = load %"struct.boost::parameter::aux::default_"** %d.addr, align 4
  %1 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  %call = call %"class.boost::dfs_visitor"* @_ZNK5boost9parameter3aux8arg_listINS1_15tagged_argumentINS_5graph8keywords3tag7visitorEKNS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES9_ISA_INS_12on_back_edgeEESA_INS_24on_forward_or_cross_edgeEEEEEEEENS1_14empty_arg_listEE11get_defaultINS1_8default_IS7_KNS8_INS_12null_visitorEEEEEEERSK_RKT_N4mpl_5bool_ILb0EEE(%"struct.boost::parameter::aux::arg_list"* %this1, %"struct.boost::parameter::aux::default_"* %0)
  ret %"class.boost::dfs_visitor"* %call
}

define linkonce_odr void @_ZNK5boost9parameter7keywordINS_5graph8keywords3tag7visitorEEorINS_11dfs_visitorINS_12null_visitorEEEEENS0_3aux8default_IS5_KT_EERSE_(%"struct.boost::parameter::aux::default_"* noalias sret %agg.result, %"struct.boost::parameter::keyword"* %this, %"class.boost::dfs_visitor.43"* %default_) align 2 {
entry:
  %this.addr = alloca %"struct.boost::parameter::keyword"*, align 4
  %default_.addr = alloca %"class.boost::dfs_visitor.43"*, align 4
  store %"struct.boost::parameter::keyword"* %this, %"struct.boost::parameter::keyword"** %this.addr, align 4
  store %"class.boost::dfs_visitor.43"* %default_, %"class.boost::dfs_visitor.43"** %default_.addr, align 4
  %this1 = load %"struct.boost::parameter::keyword"** %this.addr
  %0 = load %"class.boost::dfs_visitor.43"** %default_.addr, align 4
  call void @_ZN5boost9parameter3aux8default_INS_5graph8keywords3tag7visitorEKNS_11dfs_visitorINS_12null_visitorEEEEC1ERSA_(%"struct.boost::parameter::aux::default_"* %agg.result, %"class.boost::dfs_visitor.43"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost16make_dfs_visitorINS_12null_visitorEEENS_11dfs_visitorIT_EES3_(%"class.boost::dfs_visitor.43"* noalias sret %agg.result) {
entry:
  %vis = alloca %"struct.boost::null_visitor", align 1
  %agg.tmp = alloca %"struct.boost::null_visitor", align 1
  call void @_ZN5boost11dfs_visitorINS_12null_visitorEEC1ES1_(%"class.boost::dfs_visitor.43"* %agg.result)
  ret void
}

define linkonce_odr void @_ZNK5boost6detail35make_property_map_from_arg_pack_genINS_5graph8keywords3tag9color_mapENS_18default_color_typeEEclINS_14adjacency_listINS_4vecSESA_NS_9directedSENS_11no_propertyESC_SC_NS_5listSEEENS_9parameter3aux8arg_listINSG_15tagged_argumentINS4_7visitorEKNS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEESL_ISM_INS_12on_back_edgeEESM_INS_24on_forward_or_cross_edgeEEEEEEEENSG_14empty_arg_listEEEEENS0_9map_makerIT_T0_S5_S6_E8map_typeERKS11_RKS12_(%"class.boost::shared_array_property_map"* noalias sret %agg.result, %"class.boost::detail::make_property_map_from_arg_pack_gen"* %this, %"class.boost::adjacency_list"* %g, %"struct.boost::parameter::aux::arg_list"* %ap) align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::make_property_map_from_arg_pack_gen"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %ap.addr = alloca %"struct.boost::parameter::aux::arg_list"*, align 4
  store %"class.boost::detail::make_property_map_from_arg_pack_gen"* %this, %"class.boost::detail::make_property_map_from_arg_pack_gen"** %this.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store %"struct.boost::parameter::aux::arg_list"* %ap, %"struct.boost::parameter::aux::arg_list"** %ap.addr, align 4
  %this1 = load %"class.boost::detail::make_property_map_from_arg_pack_gen"** %this.addr
  %0 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %"struct.boost::parameter::aux::arg_list"** %ap.addr, align 4
  %default_value = getelementptr inbounds %"class.boost::detail::make_property_map_from_arg_pack_gen"* %this1, i32 0, i32 0
  %2 = load i32* %default_value, align 4
  call void @_ZN5boost6detail9map_makerINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEENS_9parameter3aux8arg_listINS9_15tagged_argumentINS_5graph8keywords3tag7visitorEKNS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEESH_ISI_INS_12on_back_edgeEESI_INS_24on_forward_or_cross_edgeEEEEEEEENS9_14empty_arg_listEEENSE_9color_mapENS_18default_color_typeEE8make_mapERKS7_RKSV_SX_(%"class.boost::shared_array_property_map"* sret %agg.result, %"class.boost::adjacency_list"* %0, %"struct.boost::parameter::aux::arg_list"* %1, i32 %2)
  ret void
}

define linkonce_odr i32 @_ZNK5boost9parameter3aux14empty_arg_listixINS_5graph8keywords3tag11root_vertexENS_6detail29get_default_starting_vertex_tINS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEEEEEENS1_10result_of0IT0_E4typeENS1_12lazy_defaultIT_SI_EE(%"struct.boost::parameter::aux::empty_arg_list"* %this, %"struct.boost::parameter::aux::lazy_default"* byval align 4 %x) align 2 {
entry:
  %this.addr = alloca %"struct.boost::parameter::aux::empty_arg_list"*, align 4
  store %"struct.boost::parameter::aux::empty_arg_list"* %this, %"struct.boost::parameter::aux::empty_arg_list"** %this.addr, align 4
  %this1 = load %"struct.boost::parameter::aux::empty_arg_list"** %this.addr
  %compute_default = getelementptr inbounds %"struct.boost::parameter::aux::lazy_default"* %x, i32 0, i32 0
  %ref = load %"struct.boost::detail::get_default_starting_vertex_t"** %compute_default, align 4
  %call = call i32 @_ZNK5boost6detail29get_default_starting_vertex_tINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEEEclEv(%"struct.boost::detail::get_default_starting_vertex_t"* %ref)
  ret i32 %call
}

define linkonce_odr void @_ZNK5boost9parameter7keywordINS_5graph8keywords3tag11root_vertexEEooINS_6detail29get_default_starting_vertex_tINS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEEEEEENS0_3aux12lazy_defaultIS5_T_EERKSJ_(%"struct.boost::parameter::aux::lazy_default"* noalias sret %agg.result, %"struct.boost::parameter::keyword.44"* %this, %"struct.boost::detail::get_default_starting_vertex_t"* %default_) align 2 {
entry:
  %this.addr = alloca %"struct.boost::parameter::keyword.44"*, align 4
  %default_.addr = alloca %"struct.boost::detail::get_default_starting_vertex_t"*, align 4
  store %"struct.boost::parameter::keyword.44"* %this, %"struct.boost::parameter::keyword.44"** %this.addr, align 4
  store %"struct.boost::detail::get_default_starting_vertex_t"* %default_, %"struct.boost::detail::get_default_starting_vertex_t"** %default_.addr, align 4
  %this1 = load %"struct.boost::parameter::keyword.44"** %this.addr
  %0 = load %"struct.boost::detail::get_default_starting_vertex_t"** %default_.addr, align 4
  call void @_ZN5boost9parameter3aux12lazy_defaultINS_5graph8keywords3tag11root_vertexENS_6detail29get_default_starting_vertex_tINS_14adjacency_listINS_4vecSESA_NS_9directedSENS_11no_propertyESC_SC_NS_5listSEEEEEEC1ERKSF_(%"struct.boost::parameter::aux::lazy_default"* %agg.result, %"struct.boost::detail::get_default_starting_vertex_t"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost6detail29get_default_starting_vertex_tINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEEEC1ERKS7_(%"struct.boost::detail::get_default_starting_vertex_t"* %this, %"class.boost::adjacency_list"* %g) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::get_default_starting_vertex_t"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  store %"struct.boost::detail::get_default_starting_vertex_t"* %this, %"struct.boost::detail::get_default_starting_vertex_t"** %this.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"struct.boost::detail::get_default_starting_vertex_t"** %this.addr
  %0 = load %"class.boost::adjacency_list"** %g.addr
  call void @_ZN5boost6detail29get_default_starting_vertex_tINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEEEC2ERKS7_(%"struct.boost::detail::get_default_starting_vertex_t"* %this1, %"class.boost::adjacency_list"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED1Ev(%"class.boost::shared_array_property_map"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::shared_array_property_map"*, align 4
  store %"class.boost::shared_array_property_map"* %this, %"class.boost::shared_array_property_map"** %this.addr, align 4
  %this1 = load %"class.boost::shared_array_property_map"** %this.addr
  call void @_ZN5boost25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED2Ev(%"class.boost::shared_array_property_map"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEED2Ev(%"class.boost::shared_array_property_map"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::shared_array_property_map"*, align 4
  store %"class.boost::shared_array_property_map"* %this, %"class.boost::shared_array_property_map"** %this.addr, align 4
  %this1 = load %"class.boost::shared_array_property_map"** %this.addr
  %data = getelementptr inbounds %"class.boost::shared_array_property_map"* %this1, i32 0, i32 0
  call void @_ZN5boost12shared_arrayINS_18default_color_typeEED1Ev(%"class.boost::shared_array.42"* %data)
  ret void
}

define linkonce_odr void @_ZN5boost12shared_arrayINS_18default_color_typeEED1Ev(%"class.boost::shared_array.42"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::shared_array.42"*, align 4
  store %"class.boost::shared_array.42"* %this, %"class.boost::shared_array.42"** %this.addr, align 4
  %this1 = load %"class.boost::shared_array.42"** %this.addr
  call void @_ZN5boost12shared_arrayINS_18default_color_typeEED2Ev(%"class.boost::shared_array.42"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost12shared_arrayINS_18default_color_typeEED2Ev(%"class.boost::shared_array.42"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::shared_array.42"*, align 4
  store %"class.boost::shared_array.42"* %this, %"class.boost::shared_array.42"** %this.addr, align 4
  %this1 = load %"class.boost::shared_array.42"** %this.addr
  %pn = getelementptr inbounds %"class.boost::shared_array.42"* %this1, i32 0, i32 1
  call void @_ZN5boost6detail12shared_countD1Ev(%"class.boost::detail::shared_count"* %pn)
  ret void
}

define linkonce_odr void @_ZN5boost6detail29get_default_starting_vertex_tINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEEEC2ERKS7_(%"struct.boost::detail::get_default_starting_vertex_t"* %this, %"class.boost::adjacency_list"* %g) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::get_default_starting_vertex_t"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  store %"struct.boost::detail::get_default_starting_vertex_t"* %this, %"struct.boost::detail::get_default_starting_vertex_t"** %this.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"struct.boost::detail::get_default_starting_vertex_t"** %this.addr
  %0 = getelementptr inbounds %"struct.boost::detail::get_default_starting_vertex_t"* %this1, i32 0, i32 0
  %1 = load %"class.boost::adjacency_list"** %g.addr, align 4
  store %"class.boost::adjacency_list"* %1, %"class.boost::adjacency_list"** %0, align 4
  ret void
}

define linkonce_odr void @_ZN5boost9parameter3aux12lazy_defaultINS_5graph8keywords3tag11root_vertexENS_6detail29get_default_starting_vertex_tINS_14adjacency_listINS_4vecSESA_NS_9directedSENS_11no_propertyESC_SC_NS_5listSEEEEEEC1ERKSF_(%"struct.boost::parameter::aux::lazy_default"* %this, %"struct.boost::detail::get_default_starting_vertex_t"* %x) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::parameter::aux::lazy_default"*, align 4
  %x.addr = alloca %"struct.boost::detail::get_default_starting_vertex_t"*, align 4
  store %"struct.boost::parameter::aux::lazy_default"* %this, %"struct.boost::parameter::aux::lazy_default"** %this.addr, align 4
  store %"struct.boost::detail::get_default_starting_vertex_t"* %x, %"struct.boost::detail::get_default_starting_vertex_t"** %x.addr, align 4
  %this1 = load %"struct.boost::parameter::aux::lazy_default"** %this.addr
  %0 = load %"struct.boost::detail::get_default_starting_vertex_t"** %x.addr
  call void @_ZN5boost9parameter3aux12lazy_defaultINS_5graph8keywords3tag11root_vertexENS_6detail29get_default_starting_vertex_tINS_14adjacency_listINS_4vecSESA_NS_9directedSENS_11no_propertyESC_SC_NS_5listSEEEEEEC2ERKSF_(%"struct.boost::parameter::aux::lazy_default"* %this1, %"struct.boost::detail::get_default_starting_vertex_t"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost9parameter3aux12lazy_defaultINS_5graph8keywords3tag11root_vertexENS_6detail29get_default_starting_vertex_tINS_14adjacency_listINS_4vecSESA_NS_9directedSENS_11no_propertyESC_SC_NS_5listSEEEEEEC2ERKSF_(%"struct.boost::parameter::aux::lazy_default"* %this, %"struct.boost::detail::get_default_starting_vertex_t"* %x) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::parameter::aux::lazy_default"*, align 4
  %x.addr = alloca %"struct.boost::detail::get_default_starting_vertex_t"*, align 4
  store %"struct.boost::parameter::aux::lazy_default"* %this, %"struct.boost::parameter::aux::lazy_default"** %this.addr, align 4
  store %"struct.boost::detail::get_default_starting_vertex_t"* %x, %"struct.boost::detail::get_default_starting_vertex_t"** %x.addr, align 4
  %this1 = load %"struct.boost::parameter::aux::lazy_default"** %this.addr
  %0 = getelementptr inbounds %"struct.boost::parameter::aux::lazy_default"* %this1, i32 0, i32 0
  %1 = load %"struct.boost::detail::get_default_starting_vertex_t"** %x.addr, align 4
  store %"struct.boost::detail::get_default_starting_vertex_t"* %1, %"struct.boost::detail::get_default_starting_vertex_t"** %0, align 4
  ret void
}

define linkonce_odr i32 @_ZNK5boost6detail29get_default_starting_vertex_tINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEEEclEv(%"struct.boost::detail::get_default_starting_vertex_t"* %this) align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::get_default_starting_vertex_t"*, align 4
  store %"struct.boost::detail::get_default_starting_vertex_t"* %this, %"struct.boost::detail::get_default_starting_vertex_t"** %this.addr, align 4
  %this1 = load %"struct.boost::detail::get_default_starting_vertex_t"** %this.addr
  %g = getelementptr inbounds %"struct.boost::detail::get_default_starting_vertex_t"* %this1, i32 0, i32 0
  %ref = load %"class.boost::adjacency_list"** %g, align 4
  %call = call i32 @_ZN5boost6detail27get_default_starting_vertexINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEEEENS_12graph_traitsIT_E17vertex_descriptorERKS9_(%"class.boost::adjacency_list"* %ref)
  ret i32 %call
}

define linkonce_odr i32 @_ZN5boost6detail27get_default_starting_vertexINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEEEENS_12graph_traitsIT_E17vertex_descriptorERKS9_(%"class.boost::adjacency_list"* %g) {
entry:
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %iters = alloca %"struct.std::pair.32", align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %0 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = bitcast %"class.boost::adjacency_list"* %0 to %"struct.boost::adj_list_helper"*
  call void @_ZN5boost8verticesINS_6detail12adj_list_genINS_14adjacency_listINS_4vecSES4_NS_9directedSENS_11no_propertyES6_S6_NS_5listSEEES4_S4_S5_S6_S6_S6_S7_E6configENS_21directed_graph_helperISA_EEEESt4pairINT_15vertex_iteratorESF_ERKNS_15adj_list_helperISE_T0_EE(%"struct.std::pair.32"* sret %iters, %"struct.boost::adj_list_helper"* %1)
  %first = getelementptr inbounds %"struct.std::pair.32"* %iters, i32 0, i32 0
  %2 = bitcast %"class.boost::range_detail::integer_iterator"* %first to %"class.boost::iterator_facade"*
  %second = getelementptr inbounds %"struct.std::pair.32"* %iters, i32 0, i32 1
  %3 = bitcast %"class.boost::range_detail::integer_iterator"* %second to %"class.boost::iterator_facade"*
  %call = call zeroext i1 @_ZN5boosteqINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiS3_jS4_jiEENS_6detail23enable_if_interoperableIT_T4_NS_3mpl6apply2INS5_12always_bool2ES7_S8_E4typeEE4typeERKNS_15iterator_facadeIS7_T0_T1_T2_T3_EERKNSG_IS8_T5_T6_T7_T8_EE(%"class.boost::iterator_facade"* %2, %"class.boost::iterator_facade"* %3)
  br i1 %call, label %cond.true, label %cond.false

cond.true:                                        ; preds = %entry
  %call1 = call i32 @_ZN5boost12graph_traitsINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEEE11null_vertexEv()
  br label %cond.end

cond.false:                                       ; preds = %entry
  %first2 = getelementptr inbounds %"struct.std::pair.32"* %iters, i32 0, i32 0
  %4 = bitcast %"class.boost::range_detail::integer_iterator"* %first2 to %"class.boost::iterator_facade"*
  %call3 = call i32 @_ZNK5boost15iterator_facadeINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiEdeEv(%"class.boost::iterator_facade"* %4)
  br label %cond.end

cond.end:                                         ; preds = %cond.false, %cond.true
  %cond = phi i32 [ %call1, %cond.true ], [ %call3, %cond.false ]
  ret i32 %cond
}

define linkonce_odr zeroext i1 @_ZN5boosteqINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiS3_jS4_jiEENS_6detail23enable_if_interoperableIT_T4_NS_3mpl6apply2INS5_12always_bool2ES7_S8_E4typeEE4typeERKNS_15iterator_facadeIS7_T0_T1_T2_T3_EERKNSG_IS8_T5_T6_T7_T8_EE(%"class.boost::iterator_facade"* %lhs, %"class.boost::iterator_facade"* %rhs) inlinehint {
entry:
  %lhs.addr = alloca %"class.boost::iterator_facade"*, align 4
  %rhs.addr = alloca %"class.boost::iterator_facade"*, align 4
  %agg.tmp = alloca %"struct.mpl_::bool_", align 1
  %ref.tmp = alloca %"struct.boost::is_convertible.40", align 1
  store %"class.boost::iterator_facade"* %lhs, %"class.boost::iterator_facade"** %lhs.addr, align 4
  store %"class.boost::iterator_facade"* %rhs, %"class.boost::iterator_facade"** %rhs.addr, align 4
  %0 = load %"class.boost::iterator_facade"** %lhs.addr, align 4
  %1 = bitcast %"class.boost::iterator_facade"* %0 to %"class.boost::range_detail::integer_iterator"*
  %2 = load %"class.boost::iterator_facade"** %rhs.addr, align 4
  %3 = bitcast %"class.boost::iterator_facade"* %2 to %"class.boost::range_detail::integer_iterator"*
  %4 = bitcast %"struct.boost::is_convertible.40"* %ref.tmp to %"struct.mpl_::bool_"*
  %call = call zeroext i1 @_ZN5boost20iterator_core_access5equalINS_12range_detail16integer_iteratorIjEES4_EEbRKT_RKT0_N4mpl_5bool_ILb1EEE(%"class.boost::range_detail::integer_iterator"* %1, %"class.boost::range_detail::integer_iterator"* %3)
  ret i1 %call
}

define linkonce_odr i32 @_ZN5boost12graph_traitsINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEEE11null_vertexEv() inlinehint align 2 {
entry:
  %call = call i32 @_ZN5boost17vec_adj_list_implINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_6detail12adj_list_genIS6_S2_S2_S3_S4_S4_S4_S5_E6configENS_21directed_graph_helperISA_EEE11null_vertexEv()
  ret i32 %call
}

define linkonce_odr i32 @_ZN5boost17vec_adj_list_implINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_6detail12adj_list_genIS6_S2_S2_S3_S4_S4_S4_S5_E6configENS_21directed_graph_helperISA_EEE11null_vertexEv() nounwind align 2 {
entry:
  %call = call i32 @_ZNSt14numeric_limitsIjE3maxEv() nounwind
  ret i32 %call
}

define linkonce_odr i32 @_ZNSt14numeric_limitsIjE3maxEv() nounwind align 2 {
entry:
  ret i32 -1
}

define linkonce_odr void @_ZN5boost6detail9map_makerINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEENS_9parameter3aux8arg_listINS9_15tagged_argumentINS_5graph8keywords3tag7visitorEKNS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEESH_ISI_INS_12on_back_edgeEESI_INS_24on_forward_or_cross_edgeEEEEEEEENS9_14empty_arg_listEEENSE_9color_mapENS_18default_color_typeEE8make_mapERKS7_RKSV_SX_(%"class.boost::shared_array_property_map"* noalias sret %agg.result, %"class.boost::adjacency_list"* %g, %"struct.boost::parameter::aux::arg_list"* %ap, i32 %default_value) align 2 {
entry:
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %ap.addr = alloca %"struct.boost::parameter::aux::arg_list"*, align 4
  %default_value.addr = alloca i32, align 4
  %agg.tmp = alloca %"struct.boost::parameter::aux::default_.45", align 4
  %ref.tmp = alloca i32, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store %"struct.boost::parameter::aux::arg_list"* %ap, %"struct.boost::parameter::aux::arg_list"** %ap.addr, align 4
  store i32 %default_value, i32* %default_value.addr, align 4
  %0 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load i32* %default_value.addr, align 4
  %2 = load %"struct.boost::parameter::aux::arg_list"** %ap.addr, align 4
  %3 = bitcast %"struct.boost::parameter::aux::arg_list"* %2 to %"struct.boost::parameter::aux::empty_arg_list"*
  store i32 0, i32* %ref.tmp, align 4
  call void @_ZNK5boost9parameter7keywordINS_5graph8keywords3tag9color_mapEEorIiEENS0_3aux8default_IS5_KT_EERSB_(%"struct.boost::parameter::aux::default_.45"* sret %agg.tmp, %"struct.boost::parameter::keyword.46"* @_ZN5boost9parameter7keywordINS_5graph8keywords3tag9color_mapEE8instanceE, i32* %ref.tmp)
  %call = call i32* @_ZNK5boost9parameter3aux14empty_arg_listixINS_5graph8keywords3tag9color_mapEKiEERT0_NS1_8default_IT_S9_EE(%"struct.boost::parameter::aux::empty_arg_list"* %3, %"struct.boost::parameter::aux::default_.45"* byval align 4 %agg.tmp)
  %4 = load %"struct.boost::parameter::aux::arg_list"** %ap.addr, align 4
  call void @_ZN5boost6detail16map_maker_helperILb0ENS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEENS_9parameter3aux8arg_listINS9_15tagged_argumentINS_5graph8keywords3tag7visitorEKNS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEESH_ISI_INS_12on_back_edgeEESI_INS_24on_forward_or_cross_edgeEEEEEEEENS9_14empty_arg_listEEENS_18default_color_typeEiE8make_mapERKS7_SW_RKiRKSV_(%"class.boost::shared_array_property_map"* sret %agg.result, %"class.boost::adjacency_list"* %0, i32 %1, i32* %call, %"struct.boost::parameter::aux::arg_list"* %4)
  ret void
}

define linkonce_odr void @_ZN5boost6detail16map_maker_helperILb0ENS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEENS_9parameter3aux8arg_listINS9_15tagged_argumentINS_5graph8keywords3tag7visitorEKNS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEESH_ISI_INS_12on_back_edgeEESI_INS_24on_forward_or_cross_edgeEEEEEEEENS9_14empty_arg_listEEENS_18default_color_typeEiE8make_mapERKS7_SW_RKiRKSV_(%"class.boost::shared_array_property_map"* noalias sret %agg.result, %"class.boost::adjacency_list"* %g, i32 %v, i32*, %"struct.boost::parameter::aux::arg_list"* %ap) align 2 {
entry:
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %v.addr = alloca i32, align 4
  %.addr = alloca i32*, align 4
  %ap.addr = alloca %"struct.boost::parameter::aux::arg_list"*, align 4
  %ref.tmp = alloca %"struct.boost::vec_adj_list_vertex_id_map", align 1
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store i32 %v, i32* %v.addr, align 4
  store i32* %0, i32** %.addr, align 4
  store %"struct.boost::parameter::aux::arg_list"* %ap, %"struct.boost::parameter::aux::arg_list"** %ap.addr, align 4
  %1 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %2 = bitcast %"class.boost::adjacency_list"* %1 to %"struct.boost::adj_list_helper"*
  %call = call i32 @_ZN5boost12num_verticesINS_6detail12adj_list_genINS_14adjacency_listINS_4vecSES4_NS_9directedSENS_11no_propertyES6_S6_NS_5listSEEES4_S4_S5_S6_S6_S6_S7_E6configENS_21directed_graph_helperISA_EEEENT_18vertices_size_typeERKNS_15adj_list_helperISD_T0_EE(%"struct.boost::adj_list_helper"* %2)
  %3 = load %"struct.boost::parameter::aux::arg_list"** %ap.addr, align 4
  %4 = load %"struct.boost::parameter::keyword.47"** @_ZN5boost5graph8keywords12_GLOBAL__N_117_vertex_index_mapE, align 4
  %5 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost6detail23override_const_propertyINS_9parameter3aux8arg_listINS3_15tagged_argumentINS_5graph8keywords3tag7visitorEKNS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEESB_ISC_INS_12on_back_edgeEESC_INS_24on_forward_or_cross_edgeEEEEEEEENS3_14empty_arg_listEEENS8_16vertex_index_mapENS_14vertex_index_tENS_14adjacency_listINS_4vecSEST_NS_9directedSENS_11no_propertyESV_SV_NS_5listSEEEEENS0_30override_const_property_resultIT_T0_T1_T2_E4typeERKSZ_RKNS2_7keywordIS10_EERKS12_S11_(%"struct.boost::vec_adj_list_vertex_id_map"* sret %ref.tmp, %"struct.boost::parameter::aux::arg_list"* %3, %"struct.boost::parameter::keyword.47"* %4, %"class.boost::adjacency_list"* %5, i32 0)
  call void @_ZN5boost30make_shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEENS_25shared_array_property_mapIT_T0_EEjRKS6_RKS7_(%"class.boost::shared_array_property_map"* sret %agg.result, i32 %call, i32* %v.addr, %"struct.boost::vec_adj_list_vertex_id_map"* %ref.tmp)
  ret void
}

define linkonce_odr i32* @_ZNK5boost9parameter3aux14empty_arg_listixINS_5graph8keywords3tag9color_mapEKiEERT0_NS1_8default_IT_S9_EE(%"struct.boost::parameter::aux::empty_arg_list"* %this, %"struct.boost::parameter::aux::default_.45"* byval align 4 %x) nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::parameter::aux::empty_arg_list"*, align 4
  store %"struct.boost::parameter::aux::empty_arg_list"* %this, %"struct.boost::parameter::aux::empty_arg_list"** %this.addr, align 4
  %this1 = load %"struct.boost::parameter::aux::empty_arg_list"** %this.addr
  %value = getelementptr inbounds %"struct.boost::parameter::aux::default_.45"* %x, i32 0, i32 0
  %ref = load i32** %value, align 4
  ret i32* %ref
}

define linkonce_odr void @_ZNK5boost9parameter7keywordINS_5graph8keywords3tag9color_mapEEorIiEENS0_3aux8default_IS5_KT_EERSB_(%"struct.boost::parameter::aux::default_.45"* noalias sret %agg.result, %"struct.boost::parameter::keyword.46"* %this, i32* %default_) align 2 {
entry:
  %this.addr = alloca %"struct.boost::parameter::keyword.46"*, align 4
  %default_.addr = alloca i32*, align 4
  store %"struct.boost::parameter::keyword.46"* %this, %"struct.boost::parameter::keyword.46"** %this.addr, align 4
  store i32* %default_, i32** %default_.addr, align 4
  %this1 = load %"struct.boost::parameter::keyword.46"** %this.addr
  %0 = load i32** %default_.addr, align 4
  call void @_ZN5boost9parameter3aux8default_INS_5graph8keywords3tag9color_mapEKiEC1ERS7_(%"struct.boost::parameter::aux::default_.45"* %agg.result, i32* %0)
  ret void
}

define linkonce_odr void @_ZN5boost9parameter3aux8default_INS_5graph8keywords3tag9color_mapEKiEC1ERS7_(%"struct.boost::parameter::aux::default_.45"* %this, i32* %x) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::parameter::aux::default_.45"*, align 4
  %x.addr = alloca i32*, align 4
  store %"struct.boost::parameter::aux::default_.45"* %this, %"struct.boost::parameter::aux::default_.45"** %this.addr, align 4
  store i32* %x, i32** %x.addr, align 4
  %this1 = load %"struct.boost::parameter::aux::default_.45"** %this.addr
  %0 = load i32** %x.addr
  call void @_ZN5boost9parameter3aux8default_INS_5graph8keywords3tag9color_mapEKiEC2ERS7_(%"struct.boost::parameter::aux::default_.45"* %this1, i32* %0)
  ret void
}

define linkonce_odr void @_ZN5boost9parameter3aux8default_INS_5graph8keywords3tag9color_mapEKiEC2ERS7_(%"struct.boost::parameter::aux::default_.45"* %this, i32* %x) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::parameter::aux::default_.45"*, align 4
  %x.addr = alloca i32*, align 4
  store %"struct.boost::parameter::aux::default_.45"* %this, %"struct.boost::parameter::aux::default_.45"** %this.addr, align 4
  store i32* %x, i32** %x.addr, align 4
  %this1 = load %"struct.boost::parameter::aux::default_.45"** %this.addr
  %0 = getelementptr inbounds %"struct.boost::parameter::aux::default_.45"* %this1, i32 0, i32 0
  %1 = load i32** %x.addr, align 4
  store i32* %1, i32** %0, align 4
  ret void
}

define linkonce_odr void @_ZN5boost30make_shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEENS_25shared_array_property_mapIT_T0_EEjRKS6_RKS7_(%"class.boost::shared_array_property_map"* noalias sret %agg.result, i32 %n, i32*, %"struct.boost::vec_adj_list_vertex_id_map"* %index) {
entry:
  %n.addr = alloca i32, align 4
  %.addr = alloca i32*, align 4
  %index.addr = alloca %"struct.boost::vec_adj_list_vertex_id_map"*, align 4
  store i32 %n, i32* %n.addr, align 4
  store i32* %0, i32** %.addr, align 4
  store %"struct.boost::vec_adj_list_vertex_id_map"* %index, %"struct.boost::vec_adj_list_vertex_id_map"** %index.addr, align 4
  %1 = load i32* %n.addr, align 4
  %2 = load %"struct.boost::vec_adj_list_vertex_id_map"** %index.addr, align 4
  call void @_ZN5boost25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEC1EjRKS4_(%"class.boost::shared_array_property_map"* %agg.result, i32 %1, %"struct.boost::vec_adj_list_vertex_id_map"* %2)
  ret void
}

define linkonce_odr void @_ZN5boost6detail23override_const_propertyINS_9parameter3aux8arg_listINS3_15tagged_argumentINS_5graph8keywords3tag7visitorEKNS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEESB_ISC_INS_12on_back_edgeEESC_INS_24on_forward_or_cross_edgeEEEEEEEENS3_14empty_arg_listEEENS8_16vertex_index_mapENS_14vertex_index_tENS_14adjacency_listINS_4vecSEST_NS_9directedSENS_11no_propertyESV_SV_NS_5listSEEEEENS0_30override_const_property_resultIT_T0_T1_T2_E4typeERKSZ_RKNS2_7keywordIS10_EERKS12_S11_(%"struct.boost::vec_adj_list_vertex_id_map"* noalias sret %agg.result, %"struct.boost::parameter::aux::arg_list"* %ap, %"struct.boost::parameter::keyword.47"* %t, %"class.boost::adjacency_list"* %g, i32) {
entry:
  %ap.addr = alloca %"struct.boost::parameter::aux::arg_list"*, align 4
  %t.addr = alloca %"struct.boost::parameter::keyword.47"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %.addr = alloca i32, align 4
  %tmp = alloca %"struct.boost::detail::override_const_property_t", align 1
  %agg.tmp = alloca %"struct.boost::parameter::aux::default_.48", align 4
  %ref.tmp = alloca i32, align 4
  store %"struct.boost::parameter::aux::arg_list"* %ap, %"struct.boost::parameter::aux::arg_list"** %ap.addr, align 4
  store %"struct.boost::parameter::keyword.47"* %t, %"struct.boost::parameter::keyword.47"** %t.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store i32 %0, i32* %.addr, align 4
  %1 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %2 = load %"struct.boost::parameter::aux::arg_list"** %ap.addr, align 4
  %3 = bitcast %"struct.boost::parameter::aux::arg_list"* %2 to %"struct.boost::parameter::aux::empty_arg_list"*
  %4 = load %"struct.boost::parameter::keyword.47"** %t.addr, align 4
  store i32 0, i32* %ref.tmp, align 4
  call void @_ZNK5boost9parameter7keywordINS_5graph8keywords3tag16vertex_index_mapEEorIiEENS0_3aux8default_IS5_KT_EERSB_(%"struct.boost::parameter::aux::default_.48"* sret %agg.tmp, %"struct.boost::parameter::keyword.47"* %4, i32* %ref.tmp)
  %call = call i32* @_ZNK5boost9parameter3aux14empty_arg_listixINS_5graph8keywords3tag16vertex_index_mapEKiEERT0_NS1_8default_IT_S9_EE(%"struct.boost::parameter::aux::empty_arg_list"* %3, %"struct.boost::parameter::aux::default_.48"* byval align 4 %agg.tmp)
  call void @_ZNK5boost6detail25override_const_property_tIiNS_14vertex_index_tENS_14adjacency_listINS_4vecSES4_NS_9directedSENS_11no_propertyES6_S6_NS_5listSEEELb0EEclERKS8_RKi(%"struct.boost::vec_adj_list_vertex_id_map"* sret %agg.result, %"struct.boost::detail::override_const_property_t"* %tmp, %"class.boost::adjacency_list"* %1, i32* %call)
  ret void
}

define linkonce_odr void @_ZNK5boost6detail25override_const_property_tIiNS_14vertex_index_tENS_14adjacency_listINS_4vecSES4_NS_9directedSENS_11no_propertyES6_S6_NS_5listSEEELb0EEclERKS8_RKi(%"struct.boost::vec_adj_list_vertex_id_map"* noalias sret %agg.result, %"struct.boost::detail::override_const_property_t"* %this, %"class.boost::adjacency_list"* %g, i32*) align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::override_const_property_t"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %.addr = alloca i32*, align 4
  store %"struct.boost::detail::override_const_property_t"* %this, %"struct.boost::detail::override_const_property_t"** %this.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store i32* %0, i32** %.addr, align 4
  %this1 = load %"struct.boost::detail::override_const_property_t"** %this.addr
  %1 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %2 = bitcast %"class.boost::adjacency_list"* %1 to %"struct.boost::adj_list_helper"*
  call void @_ZN5boost3getINS_6detail12adj_list_genINS_14adjacency_listINS_4vecSES4_NS_9directedSENS_11no_propertyES6_S6_NS_5listSEEES4_S4_S5_S6_S6_S6_S7_E6configENS_21directed_graph_helperISA_EENS_14vertex_index_tEEENS_12property_mapINT_10graph_typeET1_E10const_typeESH_RKNS_15adj_list_helperISF_T0_EE(%"struct.boost::vec_adj_list_vertex_id_map"* sret %agg.result, i32 0, %"struct.boost::adj_list_helper"* %2)
  ret void
}

define linkonce_odr i32* @_ZNK5boost9parameter3aux14empty_arg_listixINS_5graph8keywords3tag16vertex_index_mapEKiEERT0_NS1_8default_IT_S9_EE(%"struct.boost::parameter::aux::empty_arg_list"* %this, %"struct.boost::parameter::aux::default_.48"* byval align 4 %x) nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::parameter::aux::empty_arg_list"*, align 4
  store %"struct.boost::parameter::aux::empty_arg_list"* %this, %"struct.boost::parameter::aux::empty_arg_list"** %this.addr, align 4
  %this1 = load %"struct.boost::parameter::aux::empty_arg_list"** %this.addr
  %value = getelementptr inbounds %"struct.boost::parameter::aux::default_.48"* %x, i32 0, i32 0
  %ref = load i32** %value, align 4
  ret i32* %ref
}

define linkonce_odr void @_ZNK5boost9parameter7keywordINS_5graph8keywords3tag16vertex_index_mapEEorIiEENS0_3aux8default_IS5_KT_EERSB_(%"struct.boost::parameter::aux::default_.48"* noalias sret %agg.result, %"struct.boost::parameter::keyword.47"* %this, i32* %default_) align 2 {
entry:
  %this.addr = alloca %"struct.boost::parameter::keyword.47"*, align 4
  %default_.addr = alloca i32*, align 4
  store %"struct.boost::parameter::keyword.47"* %this, %"struct.boost::parameter::keyword.47"** %this.addr, align 4
  store i32* %default_, i32** %default_.addr, align 4
  %this1 = load %"struct.boost::parameter::keyword.47"** %this.addr
  %0 = load i32** %default_.addr, align 4
  call void @_ZN5boost9parameter3aux8default_INS_5graph8keywords3tag16vertex_index_mapEKiEC1ERS7_(%"struct.boost::parameter::aux::default_.48"* %agg.result, i32* %0)
  ret void
}

define linkonce_odr void @_ZN5boost9parameter3aux8default_INS_5graph8keywords3tag16vertex_index_mapEKiEC1ERS7_(%"struct.boost::parameter::aux::default_.48"* %this, i32* %x) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::parameter::aux::default_.48"*, align 4
  %x.addr = alloca i32*, align 4
  store %"struct.boost::parameter::aux::default_.48"* %this, %"struct.boost::parameter::aux::default_.48"** %this.addr, align 4
  store i32* %x, i32** %x.addr, align 4
  %this1 = load %"struct.boost::parameter::aux::default_.48"** %this.addr
  %0 = load i32** %x.addr
  call void @_ZN5boost9parameter3aux8default_INS_5graph8keywords3tag16vertex_index_mapEKiEC2ERS7_(%"struct.boost::parameter::aux::default_.48"* %this1, i32* %0)
  ret void
}

define linkonce_odr void @_ZN5boost9parameter3aux8default_INS_5graph8keywords3tag16vertex_index_mapEKiEC2ERS7_(%"struct.boost::parameter::aux::default_.48"* %this, i32* %x) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::parameter::aux::default_.48"*, align 4
  %x.addr = alloca i32*, align 4
  store %"struct.boost::parameter::aux::default_.48"* %this, %"struct.boost::parameter::aux::default_.48"** %this.addr, align 4
  store i32* %x, i32** %x.addr, align 4
  %this1 = load %"struct.boost::parameter::aux::default_.48"** %this.addr
  %0 = getelementptr inbounds %"struct.boost::parameter::aux::default_.48"* %this1, i32 0, i32 0
  %1 = load i32** %x.addr, align 4
  store i32* %1, i32** %0, align 4
  ret void
}

define linkonce_odr void @_ZN5boost25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEC1EjRKS4_(%"class.boost::shared_array_property_map"* %this, i32 %n, %"struct.boost::vec_adj_list_vertex_id_map"* %_id) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::shared_array_property_map"*, align 4
  %n.addr = alloca i32, align 4
  %_id.addr = alloca %"struct.boost::vec_adj_list_vertex_id_map"*, align 4
  store %"class.boost::shared_array_property_map"* %this, %"class.boost::shared_array_property_map"** %this.addr, align 4
  store i32 %n, i32* %n.addr, align 4
  store %"struct.boost::vec_adj_list_vertex_id_map"* %_id, %"struct.boost::vec_adj_list_vertex_id_map"** %_id.addr, align 4
  %this1 = load %"class.boost::shared_array_property_map"** %this.addr
  %0 = load i32* %n.addr, align 4
  %1 = load %"struct.boost::vec_adj_list_vertex_id_map"** %_id.addr
  call void @_ZN5boost25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEC2EjRKS4_(%"class.boost::shared_array_property_map"* %this1, i32 %0, %"struct.boost::vec_adj_list_vertex_id_map"* %1)
  ret void
}

define linkonce_odr void @_ZN5boost25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEC2EjRKS4_(%"class.boost::shared_array_property_map"* %this, i32 %n, %"struct.boost::vec_adj_list_vertex_id_map"* %_id) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::shared_array_property_map"*, align 4
  %n.addr = alloca i32, align 4
  %_id.addr = alloca %"struct.boost::vec_adj_list_vertex_id_map"*, align 4
  store %"class.boost::shared_array_property_map"* %this, %"class.boost::shared_array_property_map"** %this.addr, align 4
  store i32 %n, i32* %n.addr, align 4
  store %"struct.boost::vec_adj_list_vertex_id_map"* %_id, %"struct.boost::vec_adj_list_vertex_id_map"** %_id.addr, align 4
  %this1 = load %"class.boost::shared_array_property_map"** %this.addr
  %0 = bitcast %"class.boost::shared_array_property_map"* %this1 to %"struct.boost::put_get_helper.41"*
  %data = getelementptr inbounds %"class.boost::shared_array_property_map"* %this1, i32 0, i32 0
  %1 = load i32* %n.addr, align 4
  %2 = call { i32, i1 } @llvm.umul.with.overflow.i32(i32 %1, i32 4)
  %3 = extractvalue { i32, i1 } %2, 1
  %4 = extractvalue { i32, i1 } %2, 0
  %5 = select i1 %3, i32 -1, i32 %4
  %call = call noalias i8* @_Znaj(i32 %5)
  %6 = bitcast i8* %call to i32*
  call void @_ZN5boost12shared_arrayINS_18default_color_typeEEC1EPS1_(%"class.boost::shared_array.42"* %data, i32* %6)
  %index = getelementptr inbounds %"class.boost::shared_array_property_map"* %this1, i32 0, i32 1
  %7 = load %"struct.boost::vec_adj_list_vertex_id_map"** %_id.addr, align 4
  ret void
}

define linkonce_odr void @_ZN5boost12shared_arrayINS_18default_color_typeEEC1EPS1_(%"class.boost::shared_array.42"* %this, i32* %p) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::shared_array.42"*, align 4
  %p.addr = alloca i32*, align 4
  store %"class.boost::shared_array.42"* %this, %"class.boost::shared_array.42"** %this.addr, align 4
  store i32* %p, i32** %p.addr, align 4
  %this1 = load %"class.boost::shared_array.42"** %this.addr
  %0 = load i32** %p.addr, align 4
  call void @_ZN5boost12shared_arrayINS_18default_color_typeEEC2EPS1_(%"class.boost::shared_array.42"* %this1, i32* %0)
  ret void
}

declare { i32, i1 } @llvm.umul.with.overflow.i32(i32, i32) nounwind readnone

define linkonce_odr void @_ZN5boost12shared_arrayINS_18default_color_typeEEC2EPS1_(%"class.boost::shared_array.42"* %this, i32* %p) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::shared_array.42"*, align 4
  %p.addr = alloca i32*, align 4
  %agg.tmp = alloca %"struct.boost::checked_array_deleter.49", align 1
  store %"class.boost::shared_array.42"* %this, %"class.boost::shared_array.42"** %this.addr, align 4
  store i32* %p, i32** %p.addr, align 4
  %this1 = load %"class.boost::shared_array.42"** %this.addr
  %px = getelementptr inbounds %"class.boost::shared_array.42"* %this1, i32 0, i32 0
  %0 = load i32** %p.addr, align 4
  store i32* %0, i32** %px, align 4
  %pn = getelementptr inbounds %"class.boost::shared_array.42"* %this1, i32 0, i32 1
  %1 = load i32** %p.addr, align 4
  call void @_ZN5boost6detail12shared_countC1IPNS_18default_color_typeENS_21checked_array_deleterIS3_EEEET_T0_(%"class.boost::detail::shared_count"* %pn, i32* %1)
  ret void
}

define linkonce_odr void @_ZN5boost6detail12shared_countC1IPNS_18default_color_typeENS_21checked_array_deleterIS3_EEEET_T0_(%"class.boost::detail::shared_count"* %this, i32* %p) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::shared_count"*, align 4
  %p.addr = alloca i32*, align 4
  %d = alloca %"struct.boost::checked_array_deleter.49", align 1
  store %"class.boost::detail::shared_count"* %this, %"class.boost::detail::shared_count"** %this.addr, align 4
  store i32* %p, i32** %p.addr, align 4
  %this1 = load %"class.boost::detail::shared_count"** %this.addr
  %0 = load i32** %p.addr, align 4
  call void @_ZN5boost6detail12shared_countC2IPNS_18default_color_typeENS_21checked_array_deleterIS3_EEEET_T0_(%"class.boost::detail::shared_count"* %this1, i32* %0)
  ret void
}

define linkonce_odr void @_ZN5boost6detail12shared_countC2IPNS_18default_color_typeENS_21checked_array_deleterIS3_EEEET_T0_(%"class.boost::detail::shared_count"* %this, i32* %p) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::shared_count"*, align 4
  %p.addr = alloca i32*, align 4
  %d = alloca %"struct.boost::checked_array_deleter.49", align 1
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.boost::detail::shared_count"* %this, %"class.boost::detail::shared_count"** %this.addr, align 4
  store i32* %p, i32** %p.addr, align 4
  %this1 = load %"class.boost::detail::shared_count"** %this.addr
  %pi_ = getelementptr inbounds %"class.boost::detail::shared_count"* %this1, i32 0, i32 0
  store %"class.boost::detail::sp_counted_base"* null, %"class.boost::detail::sp_counted_base"** %pi_, align 4
  %call = invoke noalias i8* @_Znwj(i32 20)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %0 = bitcast i8* %call to %"class.boost::detail::sp_counted_impl_pd.50"*
  %1 = load i32** %p.addr, align 4
  invoke void @_ZN5boost6detail18sp_counted_impl_pdIPNS_18default_color_typeENS_21checked_array_deleterIS2_EEEC1ES3_RS5_(%"class.boost::detail::sp_counted_impl_pd.50"* %0, i32* %1, %"struct.boost::checked_array_deleter.49"* %d)
          to label %invoke.cont3 unwind label %lpad2

invoke.cont3:                                     ; preds = %invoke.cont
  %2 = bitcast %"class.boost::detail::sp_counted_impl_pd.50"* %0 to %"class.boost::detail::sp_counted_base"*
  %pi_4 = getelementptr inbounds %"class.boost::detail::shared_count"* %this1, i32 0, i32 0
  store %"class.boost::detail::sp_counted_base"* %2, %"class.boost::detail::sp_counted_base"** %pi_4, align 4
  br label %try.cont

lpad:                                             ; preds = %entry
  %3 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  %4 = extractvalue { i8*, i32 } %3, 0
  store i8* %4, i8** %exn.slot
  %5 = extractvalue { i8*, i32 } %3, 1
  store i32 %5, i32* %ehselector.slot
  br label %catch

lpad2:                                            ; preds = %invoke.cont
  %6 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  %7 = extractvalue { i8*, i32 } %6, 0
  store i8* %7, i8** %exn.slot
  %8 = extractvalue { i8*, i32 } %6, 1
  store i32 %8, i32* %ehselector.slot
  call void @_ZdlPv(i8* %call) nounwind
  br label %catch

catch:                                            ; preds = %lpad2, %lpad
  %exn = load i8** %exn.slot
  %9 = call i8* @__cxa_begin_catch(i8* %exn) nounwind
  %10 = load i32** %p.addr, align 4
  invoke void @_ZNK5boost21checked_array_deleterINS_18default_color_typeEEclEPS1_(%"struct.boost::checked_array_deleter.49"* %d, i32* %10)
          to label %invoke.cont6 unwind label %lpad5

invoke.cont6:                                     ; preds = %catch
  invoke void @__cxa_rethrow() noreturn
          to label %unreachable unwind label %lpad5

lpad5:                                            ; preds = %invoke.cont6, %catch
  %11 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %12 = extractvalue { i8*, i32 } %11, 0
  store i8* %12, i8** %exn.slot
  %13 = extractvalue { i8*, i32 } %11, 1
  store i32 %13, i32* %ehselector.slot
  invoke void @__cxa_end_catch()
          to label %invoke.cont7 unwind label %terminate.lpad

invoke.cont7:                                     ; preds = %lpad5
  br label %eh.resume

try.cont:                                         ; preds = %invoke.cont3
  ret void

eh.resume:                                        ; preds = %invoke.cont7
  %exn8 = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn8, 0
  %lpad.val9 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val9

terminate.lpad:                                   ; preds = %lpad5
  %14 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable

unreachable:                                      ; preds = %invoke.cont6
  unreachable
}

define linkonce_odr void @_ZN5boost6detail18sp_counted_impl_pdIPNS_18default_color_typeENS_21checked_array_deleterIS2_EEEC1ES3_RS5_(%"class.boost::detail::sp_counted_impl_pd.50"* %this, i32* %p, %"struct.boost::checked_array_deleter.49"* %d) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_impl_pd.50"*, align 4
  %p.addr = alloca i32*, align 4
  %d.addr = alloca %"struct.boost::checked_array_deleter.49"*, align 4
  store %"class.boost::detail::sp_counted_impl_pd.50"* %this, %"class.boost::detail::sp_counted_impl_pd.50"** %this.addr, align 4
  store i32* %p, i32** %p.addr, align 4
  store %"struct.boost::checked_array_deleter.49"* %d, %"struct.boost::checked_array_deleter.49"** %d.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_impl_pd.50"** %this.addr
  %0 = load i32** %p.addr, align 4
  %1 = load %"struct.boost::checked_array_deleter.49"** %d.addr
  call void @_ZN5boost6detail18sp_counted_impl_pdIPNS_18default_color_typeENS_21checked_array_deleterIS2_EEEC2ES3_RS5_(%"class.boost::detail::sp_counted_impl_pd.50"* %this1, i32* %0, %"struct.boost::checked_array_deleter.49"* %1)
  ret void
}

define linkonce_odr void @_ZNK5boost21checked_array_deleterINS_18default_color_typeEEclEPS1_(%"struct.boost::checked_array_deleter.49"* %this, i32* %x) align 2 {
entry:
  %this.addr = alloca %"struct.boost::checked_array_deleter.49"*, align 4
  %x.addr = alloca i32*, align 4
  store %"struct.boost::checked_array_deleter.49"* %this, %"struct.boost::checked_array_deleter.49"** %this.addr, align 4
  store i32* %x, i32** %x.addr, align 4
  %this1 = load %"struct.boost::checked_array_deleter.49"** %this.addr
  %0 = load i32** %x.addr, align 4
  call void @_ZN5boost20checked_array_deleteINS_18default_color_typeEEEvPT_(i32* %0)
  ret void
}

define linkonce_odr void @_ZN5boost20checked_array_deleteINS_18default_color_typeEEEvPT_(i32* %x) nounwind inlinehint {
entry:
  %x.addr = alloca i32*, align 4
  store i32* %x, i32** %x.addr, align 4
  %0 = load i32** %x.addr, align 4
  %isnull = icmp eq i32* %0, null
  br i1 %isnull, label %delete.end, label %delete.notnull

delete.notnull:                                   ; preds = %entry
  %1 = bitcast i32* %0 to i8*
  call void @_ZdaPv(i8* %1) nounwind
  br label %delete.end

delete.end:                                       ; preds = %delete.notnull, %entry
  ret void
}

define linkonce_odr void @_ZN5boost6detail18sp_counted_impl_pdIPNS_18default_color_typeENS_21checked_array_deleterIS2_EEEC2ES3_RS5_(%"class.boost::detail::sp_counted_impl_pd.50"* %this, i32* %p, %"struct.boost::checked_array_deleter.49"* %d) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_impl_pd.50"*, align 4
  %p.addr = alloca i32*, align 4
  %d.addr = alloca %"struct.boost::checked_array_deleter.49"*, align 4
  store %"class.boost::detail::sp_counted_impl_pd.50"* %this, %"class.boost::detail::sp_counted_impl_pd.50"** %this.addr, align 4
  store i32* %p, i32** %p.addr, align 4
  store %"struct.boost::checked_array_deleter.49"* %d, %"struct.boost::checked_array_deleter.49"** %d.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_impl_pd.50"** %this.addr
  %0 = bitcast %"class.boost::detail::sp_counted_impl_pd.50"* %this1 to %"class.boost::detail::sp_counted_base"*
  call void @_ZN5boost6detail15sp_counted_baseC2Ev(%"class.boost::detail::sp_counted_base"* %0)
  %1 = bitcast %"class.boost::detail::sp_counted_impl_pd.50"* %this1 to i8***
  store i8** getelementptr inbounds ([7 x i8*]* @_ZTVN5boost6detail18sp_counted_impl_pdIPNS_18default_color_typeENS_21checked_array_deleterIS2_EEEE, i64 0, i64 2), i8*** %1
  %ptr = getelementptr inbounds %"class.boost::detail::sp_counted_impl_pd.50"* %this1, i32 0, i32 1
  %2 = load i32** %p.addr, align 4
  store i32* %2, i32** %ptr, align 4
  %del = getelementptr inbounds %"class.boost::detail::sp_counted_impl_pd.50"* %this1, i32 0, i32 2
  %3 = load %"struct.boost::checked_array_deleter.49"** %d.addr, align 4
  ret void
}

define linkonce_odr void @_ZN5boost6detail18sp_counted_impl_pdIPNS_18default_color_typeENS_21checked_array_deleterIS2_EEED1Ev(%"class.boost::detail::sp_counted_impl_pd.50"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_impl_pd.50"*, align 4
  store %"class.boost::detail::sp_counted_impl_pd.50"* %this, %"class.boost::detail::sp_counted_impl_pd.50"** %this.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_impl_pd.50"** %this.addr
  call void @_ZN5boost6detail18sp_counted_impl_pdIPNS_18default_color_typeENS_21checked_array_deleterIS2_EEED2Ev(%"class.boost::detail::sp_counted_impl_pd.50"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost6detail18sp_counted_impl_pdIPNS_18default_color_typeENS_21checked_array_deleterIS2_EEED0Ev(%"class.boost::detail::sp_counted_impl_pd.50"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_impl_pd.50"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.boost::detail::sp_counted_impl_pd.50"* %this, %"class.boost::detail::sp_counted_impl_pd.50"** %this.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_impl_pd.50"** %this.addr
  invoke void @_ZN5boost6detail18sp_counted_impl_pdIPNS_18default_color_typeENS_21checked_array_deleterIS2_EEED1Ev(%"class.boost::detail::sp_counted_impl_pd.50"* %this1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %0 = bitcast %"class.boost::detail::sp_counted_impl_pd.50"* %this1 to i8*
  call void @_ZdlPv(i8* %0) nounwind
  ret void

lpad:                                             ; preds = %entry
  %1 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %2 = extractvalue { i8*, i32 } %1, 0
  store i8* %2, i8** %exn.slot
  %3 = extractvalue { i8*, i32 } %1, 1
  store i32 %3, i32* %ehselector.slot
  %4 = bitcast %"class.boost::detail::sp_counted_impl_pd.50"* %this1 to i8*
  call void @_ZdlPv(i8* %4) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val2
}

define linkonce_odr void @_ZN5boost6detail18sp_counted_impl_pdIPNS_18default_color_typeENS_21checked_array_deleterIS2_EEE7disposeEv(%"class.boost::detail::sp_counted_impl_pd.50"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_impl_pd.50"*, align 4
  store %"class.boost::detail::sp_counted_impl_pd.50"* %this, %"class.boost::detail::sp_counted_impl_pd.50"** %this.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_impl_pd.50"** %this.addr
  %del = getelementptr inbounds %"class.boost::detail::sp_counted_impl_pd.50"* %this1, i32 0, i32 2
  %ptr = getelementptr inbounds %"class.boost::detail::sp_counted_impl_pd.50"* %this1, i32 0, i32 1
  %0 = load i32** %ptr, align 4
  call void @_ZNK5boost21checked_array_deleterINS_18default_color_typeEEclEPS1_(%"struct.boost::checked_array_deleter.49"* %del, i32* %0)
  ret void
}

define linkonce_odr i8* @_ZN5boost6detail18sp_counted_impl_pdIPNS_18default_color_typeENS_21checked_array_deleterIS2_EEE11get_deleterERKSt9type_info(%"class.boost::detail::sp_counted_impl_pd.50"* %this, %"class.std::type_info"* %ti) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_impl_pd.50"*, align 4
  %ti.addr = alloca %"class.std::type_info"*, align 4
  store %"class.boost::detail::sp_counted_impl_pd.50"* %this, %"class.boost::detail::sp_counted_impl_pd.50"** %this.addr, align 4
  store %"class.std::type_info"* %ti, %"class.std::type_info"** %ti.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_impl_pd.50"** %this.addr
  %0 = load %"class.std::type_info"** %ti.addr, align 4
  %call = call zeroext i1 @_ZNKSt9type_infoeqERKS_(%"class.std::type_info"* %0, %"class.std::type_info"* bitcast ({ i8*, i8* }* @_ZTIN5boost21checked_array_deleterINS_18default_color_typeEEE to %"class.std::type_info"*))
  br i1 %call, label %cond.true, label %cond.false

cond.true:                                        ; preds = %entry
  %del = getelementptr inbounds %"class.boost::detail::sp_counted_impl_pd.50"* %this1, i32 0, i32 2
  %1 = bitcast %"struct.boost::checked_array_deleter.49"* %del to i8*
  br label %cond.end

cond.false:                                       ; preds = %entry
  br label %cond.end

cond.end:                                         ; preds = %cond.false, %cond.true
  %cond = phi i8* [ %1, %cond.true ], [ null, %cond.false ]
  ret i8* %cond
}

define linkonce_odr void @_ZN5boost6detail18sp_counted_impl_pdIPNS_18default_color_typeENS_21checked_array_deleterIS2_EEED2Ev(%"class.boost::detail::sp_counted_impl_pd.50"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::sp_counted_impl_pd.50"*, align 4
  store %"class.boost::detail::sp_counted_impl_pd.50"* %this, %"class.boost::detail::sp_counted_impl_pd.50"** %this.addr, align 4
  %this1 = load %"class.boost::detail::sp_counted_impl_pd.50"** %this.addr
  %0 = bitcast %"class.boost::detail::sp_counted_impl_pd.50"* %this1 to %"class.boost::detail::sp_counted_base"*
  call void @_ZN5boost6detail15sp_counted_baseD2Ev(%"class.boost::detail::sp_counted_base"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost11dfs_visitorINS_12null_visitorEEC1ES1_(%"class.boost::dfs_visitor.43"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::dfs_visitor.43"*, align 4
  %vis = alloca %"struct.boost::null_visitor", align 1
  store %"class.boost::dfs_visitor.43"* %this, %"class.boost::dfs_visitor.43"** %this.addr, align 4
  %this1 = load %"class.boost::dfs_visitor.43"** %this.addr
  call void @_ZN5boost11dfs_visitorINS_12null_visitorEEC2ES1_(%"class.boost::dfs_visitor.43"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost11dfs_visitorINS_12null_visitorEEC2ES1_(%"class.boost::dfs_visitor.43"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::dfs_visitor.43"*, align 4
  %vis = alloca %"struct.boost::null_visitor", align 1
  store %"class.boost::dfs_visitor.43"* %this, %"class.boost::dfs_visitor.43"** %this.addr, align 4
  %this1 = load %"class.boost::dfs_visitor.43"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::dfs_visitor.43"* %this1, i32 0, i32 0
  ret void
}

define linkonce_odr void @_ZN5boost9parameter3aux8default_INS_5graph8keywords3tag7visitorEKNS_11dfs_visitorINS_12null_visitorEEEEC1ERSA_(%"struct.boost::parameter::aux::default_"* %this, %"class.boost::dfs_visitor.43"* %x) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::parameter::aux::default_"*, align 4
  %x.addr = alloca %"class.boost::dfs_visitor.43"*, align 4
  store %"struct.boost::parameter::aux::default_"* %this, %"struct.boost::parameter::aux::default_"** %this.addr, align 4
  store %"class.boost::dfs_visitor.43"* %x, %"class.boost::dfs_visitor.43"** %x.addr, align 4
  %this1 = load %"struct.boost::parameter::aux::default_"** %this.addr
  %0 = load %"class.boost::dfs_visitor.43"** %x.addr
  call void @_ZN5boost9parameter3aux8default_INS_5graph8keywords3tag7visitorEKNS_11dfs_visitorINS_12null_visitorEEEEC2ERSA_(%"struct.boost::parameter::aux::default_"* %this1, %"class.boost::dfs_visitor.43"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost9parameter3aux8default_INS_5graph8keywords3tag7visitorEKNS_11dfs_visitorINS_12null_visitorEEEEC2ERSA_(%"struct.boost::parameter::aux::default_"* %this, %"class.boost::dfs_visitor.43"* %x) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::parameter::aux::default_"*, align 4
  %x.addr = alloca %"class.boost::dfs_visitor.43"*, align 4
  store %"struct.boost::parameter::aux::default_"* %this, %"struct.boost::parameter::aux::default_"** %this.addr, align 4
  store %"class.boost::dfs_visitor.43"* %x, %"class.boost::dfs_visitor.43"** %x.addr, align 4
  %this1 = load %"struct.boost::parameter::aux::default_"** %this.addr
  %0 = getelementptr inbounds %"struct.boost::parameter::aux::default_"* %this1, i32 0, i32 0
  %1 = load %"class.boost::dfs_visitor.43"** %x.addr, align 4
  store %"class.boost::dfs_visitor.43"* %1, %"class.boost::dfs_visitor.43"** %0, align 4
  ret void
}

define linkonce_odr %"class.boost::dfs_visitor"* @_ZNK5boost9parameter3aux8arg_listINS1_15tagged_argumentINS_5graph8keywords3tag7visitorEKNS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES9_ISA_INS_12on_back_edgeEESA_INS_24on_forward_or_cross_edgeEEEEEEEENS1_14empty_arg_listEE11get_defaultINS1_8default_IS7_KNS8_INS_12null_visitorEEEEEEERSK_RKT_N4mpl_5bool_ILb0EEE(%"struct.boost::parameter::aux::arg_list"* %this, %"struct.boost::parameter::aux::default_"*) nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::parameter::aux::arg_list"*, align 4
  %.addr = alloca %"struct.boost::parameter::aux::default_"*, align 4
  %1 = alloca %"struct.mpl_::bool_.38", align 1
  store %"struct.boost::parameter::aux::arg_list"* %this, %"struct.boost::parameter::aux::arg_list"** %this.addr, align 4
  store %"struct.boost::parameter::aux::default_"* %0, %"struct.boost::parameter::aux::default_"** %.addr, align 4
  %this1 = load %"struct.boost::parameter::aux::arg_list"** %this.addr
  %arg = getelementptr inbounds %"struct.boost::parameter::aux::arg_list"* %this1, i32 0, i32 0
  %value = getelementptr inbounds %"struct.boost::parameter::aux::tagged_argument"* %arg, i32 0, i32 0
  %ref = load %"class.boost::dfs_visitor"** %value, align 4
  ret %"class.boost::dfs_visitor"* %ref
}

define linkonce_odr void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEEC2ERKSB_(%"class.boost::dfs_visitor"* %this, %"class.boost::dfs_visitor"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::dfs_visitor"*, align 4
  %.addr = alloca %"class.boost::dfs_visitor"*, align 4
  store %"class.boost::dfs_visitor"* %this, %"class.boost::dfs_visitor"** %this.addr, align 4
  store %"class.boost::dfs_visitor"* %0, %"class.boost::dfs_visitor"** %.addr, align 4
  %this1 = load %"class.boost::dfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::dfs_visitor"* %this1, i32 0, i32 0
  %1 = load %"class.boost::dfs_visitor"** %.addr, align 4
  %m_vis2 = getelementptr inbounds %"class.boost::dfs_visitor"* %1, i32 0, i32 0
  call void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES_IS0_INS1_12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEEEC1ERKS9_(%"struct.std::pair.8"* %m_vis, %"struct.std::pair.8"* %m_vis2)
  ret void
}

define linkonce_odr void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES_IS0_INS1_12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEEEC1ERKS9_(%"struct.std::pair.8"* %this, %"struct.std::pair.8"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.8"*, align 4
  %.addr = alloca %"struct.std::pair.8"*, align 4
  store %"struct.std::pair.8"* %this, %"struct.std::pair.8"** %this.addr, align 4
  store %"struct.std::pair.8"* %0, %"struct.std::pair.8"** %.addr, align 4
  %this1 = load %"struct.std::pair.8"** %this.addr
  %1 = load %"struct.std::pair.8"** %.addr
  call void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES_IS0_INS1_12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEEEC2ERKS9_(%"struct.std::pair.8"* %this1, %"struct.std::pair.8"* %1)
  ret void
}

define linkonce_odr void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES_IS0_INS1_12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEEEC2ERKS9_(%"struct.std::pair.8"* %this, %"struct.std::pair.8"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.8"*, align 4
  %.addr = alloca %"struct.std::pair.8"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.std::pair.8"* %this, %"struct.std::pair.8"** %this.addr, align 4
  store %"struct.std::pair.8"* %0, %"struct.std::pair.8"** %.addr, align 4
  %this1 = load %"struct.std::pair.8"** %this.addr
  %first = getelementptr inbounds %"struct.std::pair.8"* %this1, i32 0, i32 0
  %1 = load %"struct.std::pair.8"** %.addr, align 4
  %first2 = getelementptr inbounds %"struct.std::pair.8"* %1, i32 0, i32 0
  call void @_ZN12edge_printerIN5boost12on_tree_edgeEEC1ERKS2_(%struct.edge_printer* %first, %struct.edge_printer* %first2)
  %second = getelementptr inbounds %"struct.std::pair.8"* %this1, i32 0, i32 1
  %2 = load %"struct.std::pair.8"** %.addr, align 4
  %second3 = getelementptr inbounds %"struct.std::pair.8"* %2, i32 0, i32 1
  invoke void @_ZNSt4pairI12edge_printerIN5boost12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEEC1ERKS6_(%"struct.std::pair.12"* %second, %"struct.std::pair.12"* %second3)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  ret void

lpad:                                             ; preds = %entry
  %3 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %4 = extractvalue { i8*, i32 } %3, 0
  store i8* %4, i8** %exn.slot
  %5 = extractvalue { i8*, i32 } %3, 1
  store i32 %5, i32* %ehselector.slot
  invoke void @_ZN12edge_printerIN5boost12on_tree_edgeEED1Ev(%struct.edge_printer* %first)
          to label %invoke.cont4 unwind label %terminate.lpad

invoke.cont4:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont4
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val5 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val5

terminate.lpad:                                   ; preds = %lpad
  %6 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZNSt4pairI12edge_printerIN5boost12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEEC1ERKS6_(%"struct.std::pair.12"* %this, %"struct.std::pair.12"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.12"*, align 4
  %.addr = alloca %"struct.std::pair.12"*, align 4
  store %"struct.std::pair.12"* %this, %"struct.std::pair.12"** %this.addr, align 4
  store %"struct.std::pair.12"* %0, %"struct.std::pair.12"** %.addr, align 4
  %this1 = load %"struct.std::pair.12"** %this.addr
  %1 = load %"struct.std::pair.12"** %.addr
  call void @_ZNSt4pairI12edge_printerIN5boost12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEEC2ERKS6_(%"struct.std::pair.12"* %this1, %"struct.std::pair.12"* %1)
  ret void
}

define linkonce_odr void @_ZNSt4pairI12edge_printerIN5boost12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEEC2ERKS6_(%"struct.std::pair.12"* %this, %"struct.std::pair.12"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.12"*, align 4
  %.addr = alloca %"struct.std::pair.12"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.std::pair.12"* %this, %"struct.std::pair.12"** %this.addr, align 4
  store %"struct.std::pair.12"* %0, %"struct.std::pair.12"** %.addr, align 4
  %this1 = load %"struct.std::pair.12"** %this.addr
  %first = getelementptr inbounds %"struct.std::pair.12"* %this1, i32 0, i32 0
  %1 = load %"struct.std::pair.12"** %.addr, align 4
  %first2 = getelementptr inbounds %"struct.std::pair.12"* %1, i32 0, i32 0
  call void @_ZN12edge_printerIN5boost12on_back_edgeEEC1ERKS2_(%struct.edge_printer.13* %first, %struct.edge_printer.13* %first2)
  %second = getelementptr inbounds %"struct.std::pair.12"* %this1, i32 0, i32 1
  %2 = load %"struct.std::pair.12"** %.addr, align 4
  %second3 = getelementptr inbounds %"struct.std::pair.12"* %2, i32 0, i32 1
  invoke void @_ZN12edge_printerIN5boost24on_forward_or_cross_edgeEEC1ERKS2_(%struct.edge_printer.15* %second, %struct.edge_printer.15* %second3)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  ret void

lpad:                                             ; preds = %entry
  %3 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %4 = extractvalue { i8*, i32 } %3, 0
  store i8* %4, i8** %exn.slot
  %5 = extractvalue { i8*, i32 } %3, 1
  store i32 %5, i32* %ehselector.slot
  invoke void @_ZN12edge_printerIN5boost12on_back_edgeEED1Ev(%struct.edge_printer.13* %first)
          to label %invoke.cont4 unwind label %terminate.lpad

invoke.cont4:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont4
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val5 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val5

terminate.lpad:                                   ; preds = %lpad
  %6 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN12edge_printerIN5boost12on_back_edgeEEC1ERKS2_(%struct.edge_printer.13* %this, %struct.edge_printer.13*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %struct.edge_printer.13*, align 4
  %.addr = alloca %struct.edge_printer.13*, align 4
  store %struct.edge_printer.13* %this, %struct.edge_printer.13** %this.addr, align 4
  store %struct.edge_printer.13* %0, %struct.edge_printer.13** %.addr, align 4
  %this1 = load %struct.edge_printer.13** %this.addr
  %1 = load %struct.edge_printer.13** %.addr
  call void @_ZN12edge_printerIN5boost12on_back_edgeEEC2ERKS2_(%struct.edge_printer.13* %this1, %struct.edge_printer.13* %1)
  ret void
}

define linkonce_odr void @_ZN12edge_printerIN5boost24on_forward_or_cross_edgeEEC1ERKS2_(%struct.edge_printer.15* %this, %struct.edge_printer.15*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %struct.edge_printer.15*, align 4
  %.addr = alloca %struct.edge_printer.15*, align 4
  store %struct.edge_printer.15* %this, %struct.edge_printer.15** %this.addr, align 4
  store %struct.edge_printer.15* %0, %struct.edge_printer.15** %.addr, align 4
  %this1 = load %struct.edge_printer.15** %this.addr
  %1 = load %struct.edge_printer.15** %.addr
  call void @_ZN12edge_printerIN5boost24on_forward_or_cross_edgeEEC2ERKS2_(%struct.edge_printer.15* %this1, %struct.edge_printer.15* %1)
  ret void
}

define linkonce_odr void @_ZN12edge_printerIN5boost24on_forward_or_cross_edgeEEC2ERKS2_(%struct.edge_printer.15* %this, %struct.edge_printer.15*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %struct.edge_printer.15*, align 4
  %.addr = alloca %struct.edge_printer.15*, align 4
  store %struct.edge_printer.15* %this, %struct.edge_printer.15** %this.addr, align 4
  store %struct.edge_printer.15* %0, %struct.edge_printer.15** %.addr, align 4
  %this1 = load %struct.edge_printer.15** %this.addr
  %1 = bitcast %struct.edge_printer.15* %this1 to %"struct.boost::base_visitor.16"*
  %2 = load %struct.edge_printer.15** %.addr, align 4
  %3 = bitcast %struct.edge_printer.15* %2 to %"struct.boost::base_visitor.16"*
  %m_edge_type = getelementptr inbounds %struct.edge_printer.15* %this1, i32 0, i32 0
  %4 = load %struct.edge_printer.15** %.addr, align 4
  %m_edge_type2 = getelementptr inbounds %struct.edge_printer.15* %4, i32 0, i32 0
  call void @_ZNSsC1ERKSs(%"class.std::basic_string"* %m_edge_type, %"class.std::basic_string"* %m_edge_type2)
  ret void
}

define linkonce_odr void @_ZN12edge_printerIN5boost12on_back_edgeEEC2ERKS2_(%struct.edge_printer.13* %this, %struct.edge_printer.13*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %struct.edge_printer.13*, align 4
  %.addr = alloca %struct.edge_printer.13*, align 4
  store %struct.edge_printer.13* %this, %struct.edge_printer.13** %this.addr, align 4
  store %struct.edge_printer.13* %0, %struct.edge_printer.13** %.addr, align 4
  %this1 = load %struct.edge_printer.13** %this.addr
  %1 = bitcast %struct.edge_printer.13* %this1 to %"struct.boost::base_visitor.14"*
  %2 = load %struct.edge_printer.13** %.addr, align 4
  %3 = bitcast %struct.edge_printer.13* %2 to %"struct.boost::base_visitor.14"*
  %m_edge_type = getelementptr inbounds %struct.edge_printer.13* %this1, i32 0, i32 0
  %4 = load %struct.edge_printer.13** %.addr, align 4
  %m_edge_type2 = getelementptr inbounds %struct.edge_printer.13* %4, i32 0, i32 0
  call void @_ZNSsC1ERKSs(%"class.std::basic_string"* %m_edge_type, %"class.std::basic_string"* %m_edge_type2)
  ret void
}

define linkonce_odr i32 @_ZN5boost13implicit_castIjEET_NS_3mpl8identityIS1_E4typeE(i32 %x) nounwind inlinehint {
entry:
  %x.addr = alloca i32, align 4
  store i32 %x, i32* %x.addr, align 4
  %0 = load i32* %x.addr, align 4
  ret i32 %0
}

define linkonce_odr void @_ZN5boost3putINS_25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEERS2_jS2_EEvRKNS_14put_get_helperIT0_T_EET1_RKT2_(%"struct.boost::put_get_helper.41"* %pa, i32 %k, i32* %v) inlinehint {
entry:
  %pa.addr = alloca %"struct.boost::put_get_helper.41"*, align 4
  %k.addr = alloca i32, align 4
  %v.addr = alloca i32*, align 4
  store %"struct.boost::put_get_helper.41"* %pa, %"struct.boost::put_get_helper.41"** %pa.addr, align 4
  store i32 %k, i32* %k.addr, align 4
  store i32* %v, i32** %v.addr, align 4
  %0 = load i32** %v.addr, align 4
  %1 = load i32* %0, align 4
  %2 = load %"struct.boost::put_get_helper.41"** %pa.addr, align 4
  %3 = bitcast %"struct.boost::put_get_helper.41"* %2 to %"class.boost::shared_array_property_map"*
  %4 = load i32* %k.addr, align 4
  %call = call i32* @_ZNK5boost25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEixEj(%"class.boost::shared_array_property_map"* %3, i32 %4)
  store i32 %1, i32* %call
  ret void
}

define linkonce_odr i32 @_ZN5boost12color_traitsINS_18default_color_typeEE5whiteEv() nounwind align 2 {
entry:
  ret i32 0
}

define linkonce_odr void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEE17initialize_vertexIjNS_14adjacency_listINS_4vecSESE_NS_9directedSENS_11no_propertyESG_SG_NS_5listSEEEEEvT_RKT0_(%"class.boost::dfs_visitor"* %this, i32 %u, %"class.boost::adjacency_list"* %g) align 2 {
entry:
  %this.addr = alloca %"class.boost::dfs_visitor"*, align 4
  %u.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %agg.tmp = alloca %"struct.boost::on_initialize_vertex", align 1
  store %"class.boost::dfs_visitor"* %this, %"class.boost::dfs_visitor"** %this.addr, align 4
  store i32 %u, i32* %u.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"class.boost::dfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::dfs_visitor"* %this1, i32 0, i32 0
  %0 = load i32* %u.addr, align 4
  %1 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEESt4pairIS1_INS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEEEjKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEENS_20on_initialize_vertexEEEvRS4_IT_T0_ET1_RT2_T3_(%"struct.std::pair.8"* %m_vis, i32 %0, %"class.boost::adjacency_list"* %1)
  ret void
}

define linkonce_odr void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEE12start_vertexIjNS_14adjacency_listINS_4vecSESE_NS_9directedSENS_11no_propertyESG_SG_NS_5listSEEEEEvT_RKT0_(%"class.boost::dfs_visitor"* %this, i32 %u, %"class.boost::adjacency_list"* %g) align 2 {
entry:
  %this.addr = alloca %"class.boost::dfs_visitor"*, align 4
  %u.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %agg.tmp = alloca %"struct.boost::on_start_vertex", align 1
  store %"class.boost::dfs_visitor"* %this, %"class.boost::dfs_visitor"** %this.addr, align 4
  store i32 %u, i32* %u.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"class.boost::dfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::dfs_visitor"* %this1, i32 0, i32 0
  %0 = load i32* %u.addr, align 4
  %1 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEESt4pairIS1_INS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEEEjKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEENS_15on_start_vertexEEEvRS4_IT_T0_ET1_RT2_T3_(%"struct.std::pair.8"* %m_vis, i32 %0, %"class.boost::adjacency_list"* %1)
  ret void
}

define linkonce_odr void @_ZN5boost6detail22depth_first_visit_implINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEENS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES9_ISA_INS_12on_back_edgeEESA_INS_24on_forward_or_cross_edgeEEEEEENS_25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapIS5_jEEEENS0_9nontruth2EEEvRKT_NS_12graph_traitsISQ_E17vertex_descriptorERT0_T1_T2_(%"class.boost::adjacency_list"* %g, i32 %u, %"class.boost::dfs_visitor"* %vis, %"class.boost::shared_array_property_map"* %color) {
entry:
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %u.addr = alloca i32, align 4
  %vis.addr = alloca %"class.boost::dfs_visitor"*, align 4
  %func = alloca %"struct.boost::detail::nontruth2", align 1
  %ei = alloca %"struct.boost::detail::out_edge_iter", align 4
  %ei_end = alloca %"struct.boost::detail::out_edge_iter", align 4
  %stack = alloca %"class.std::vector.51", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %ref.tmp = alloca i32, align 4
  %tmp = alloca %"class.boost::tuples::tuple.34", align 4
  %ref.tmp4 = alloca %"struct.std::pair.37", align 4
  %fn = alloca %"struct.boost::detail::nontruth2"*, align 4
  %ref.tmp11 = alloca %"struct.std::pair.56", align 4
  %agg.tmp = alloca %"struct.std::pair.37", align 4
  %agg.tmp12 = alloca %"struct.boost::detail::out_edge_iter", align 4
  %agg.tmp13 = alloca %"struct.boost::detail::out_edge_iter", align 4
  %ref.tmp17 = alloca %"struct.std::pair.56", align 4
  %agg.tmp18 = alloca %"struct.std::pair.37", align 4
  %agg.tmp19 = alloca %"struct.boost::detail::out_edge_iter", align 4
  %agg.tmp20 = alloca %"struct.boost::detail::out_edge_iter", align 4
  %back = alloca %"struct.std::pair.56"*, align 4
  %tmp29 = alloca %"class.boost::tuples::tuple.34", align 4
  %v = alloca i32, align 4
  %ref.tmp39 = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp43 = alloca %"class.boost::detail::edge_desc_impl", align 4
  %v_color = alloca i32, align 4
  %agg.tmp52 = alloca %"class.boost::detail::edge_desc_impl", align 4
  %ref.tmp55 = alloca %"struct.std::pair.56", align 4
  %agg.tmp56 = alloca %"struct.std::pair.37", align 4
  %agg.tmp57 = alloca %"struct.boost::detail::out_edge_iter", align 4
  %agg.tmp60 = alloca %"struct.boost::detail::out_edge_iter", align 4
  %ref.tmp66 = alloca i32, align 4
  %tmp69 = alloca %"class.boost::tuples::tuple.34", align 4
  %ref.tmp71 = alloca %"struct.std::pair.37", align 4
  %agg.tmp84 = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp90 = alloca %"class.boost::detail::edge_desc_impl", align 4
  %ref.tmp99 = alloca i32, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  store i32 %u, i32* %u.addr, align 4
  store %"class.boost::dfs_visitor"* %vis, %"class.boost::dfs_visitor"** %vis.addr, align 4
  call void @_ZN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS0_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS6_SaIS6_EEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEC1Ev(%"struct.boost::detail::out_edge_iter"* %ei)
  call void @_ZN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS0_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS6_SaIS6_EEEEjNS0_14edge_desc_implINS_12directed_tagEjEEiEC1Ev(%"struct.boost::detail::out_edge_iter"* %ei_end)
  call void @_ZNSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EEC1Ev(%"class.std::vector.51"* %stack)
  %0 = bitcast %"class.boost::shared_array_property_map"* %color to %"struct.boost::put_get_helper.41"*
  %1 = load i32* %u.addr, align 4
  %call = invoke i32 @_ZN5boost12color_traitsINS_18default_color_typeEE4grayEv()
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  store i32 %call, i32* %ref.tmp, align 4
  invoke void @_ZN5boost3putINS_25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEERS2_jS2_EEvRKNS_14put_get_helperIT0_T_EET1_RKT2_(%"struct.boost::put_get_helper.41"* %0, i32 %1, i32* %ref.tmp)
          to label %invoke.cont1 unwind label %lpad

invoke.cont1:                                     ; preds = %invoke.cont
  %2 = load %"class.boost::dfs_visitor"** %vis.addr, align 4
  %3 = load i32* %u.addr, align 4
  %4 = load %"class.boost::adjacency_list"** %g.addr, align 4
  invoke void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEE15discover_vertexIjNS_14adjacency_listINS_4vecSESE_NS_9directedSENS_11no_propertyESG_SG_NS_5listSEEEEEvT_RKT0_(%"class.boost::dfs_visitor"* %2, i32 %3, %"class.boost::adjacency_list"* %4)
          to label %invoke.cont2 unwind label %lpad

invoke.cont2:                                     ; preds = %invoke.cont1
  invoke void @_ZN5boost6tuples3tieINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESH_EENS0_6detail10tie_mapperIT_T0_vvvvvvvvE4typeERSK_RSL_(%"class.boost::tuples::tuple.34"* sret %tmp, %"struct.boost::detail::out_edge_iter"* %ei, %"struct.boost::detail::out_edge_iter"* %ei_end)
          to label %invoke.cont3 unwind label %lpad

invoke.cont3:                                     ; preds = %invoke.cont2
  %5 = load i32* %u.addr, align 4
  %6 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %7 = bitcast %"class.boost::adjacency_list"* %6 to %"struct.boost::adj_list_helper"*
  invoke void @_ZN5boost9out_edgesINS_6detail12adj_list_genINS_14adjacency_listINS_4vecSES4_NS_9directedSENS_11no_propertyES6_S6_NS_5listSEEES4_S4_S5_S6_S6_S6_S7_E6configENS_21directed_graph_helperISA_EEEESt4pairINT_17out_edge_iteratorESF_ENSE_17vertex_descriptorERKNS_15adj_list_helperISE_T0_EE(%"struct.std::pair.37"* sret %ref.tmp4, i32 %5, %"struct.boost::adj_list_helper"* %7)
          to label %invoke.cont5 unwind label %lpad

invoke.cont5:                                     ; preds = %invoke.cont3
  %call7 = invoke %"class.boost::tuples::tuple.34"* @_ZN5boost6tuples5tupleIRNS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESI_NS0_9null_typeESJ_SJ_SJ_SJ_SJ_SJ_SJ_EaSISH_SH_EERSK_RKSt4pairIT_T0_E(%"class.boost::tuples::tuple.34"* %tmp, %"struct.std::pair.37"* %ref.tmp4)
          to label %invoke.cont6 unwind label %lpad

invoke.cont6:                                     ; preds = %invoke.cont5
  store %"struct.boost::detail::nontruth2"* %func, %"struct.boost::detail::nontruth2"** %fn, align 4
  %8 = load %"struct.boost::detail::nontruth2"** %fn, align 4
  %9 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %call10 = invoke zeroext i1 @_ZNK5boost6detail9nontruth2clIjNS_14adjacency_listINS_4vecSES4_NS_9directedSENS_11no_propertyES6_S6_NS_5listSEEEEEbRKT_RKT0_(%"struct.boost::detail::nontruth2"* %8, i32* %u.addr, %"class.boost::adjacency_list"* %9)
          to label %invoke.cont9 unwind label %lpad

invoke.cont9:                                     ; preds = %invoke.cont6
  br i1 %call10, label %if.then, label %if.else

if.then:                                          ; preds = %invoke.cont9
  %10 = load i32* %u.addr, align 4
  %11 = bitcast %"struct.boost::detail::out_edge_iter"* %agg.tmp12 to i8*
  %12 = bitcast %"struct.boost::detail::out_edge_iter"* %ei_end to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %11, i8* %12, i32 8, i32 4, i1 false)
  %13 = bitcast %"struct.boost::detail::out_edge_iter"* %agg.tmp13 to i8*
  %14 = bitcast %"struct.boost::detail::out_edge_iter"* %ei_end to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %13, i8* %14, i32 8, i32 4, i1 false)
  invoke void @_ZSt9make_pairIN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS0_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEESG_ESt4pairIT_T0_ESI_SJ_(%"struct.std::pair.37"* sret %agg.tmp, %"struct.boost::detail::out_edge_iter"* byval align 4 %agg.tmp12, %"struct.boost::detail::out_edge_iter"* byval align 4 %agg.tmp13)
          to label %invoke.cont14 unwind label %lpad

invoke.cont14:                                    ; preds = %if.then
  invoke void @_ZSt9make_pairIjSt4pairIN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EES0_IT_T0_ESJ_SK_(%"struct.std::pair.56"* sret %ref.tmp11, i32 %10, %"struct.std::pair.37"* byval align 4 %agg.tmp)
          to label %invoke.cont15 unwind label %lpad

invoke.cont15:                                    ; preds = %invoke.cont14
  invoke void @_ZNSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE9push_backERKSI_(%"class.std::vector.51"* %stack, %"struct.std::pair.56"* %ref.tmp11)
          to label %invoke.cont16 unwind label %lpad

invoke.cont16:                                    ; preds = %invoke.cont15
  br label %if.end

lpad:                                             ; preds = %invoke.cont100, %invoke.cont97, %while.end, %invoke.cont92, %invoke.cont91, %if.else89, %invoke.cont86, %invoke.cont85, %if.then83, %if.else79, %invoke.cont73, %invoke.cont72, %invoke.cont70, %invoke.cont68, %invoke.cont67, %invoke.cont64, %invoke.cont63, %invoke.cont62, %invoke.cont61, %invoke.cont58, %invoke.cont54, %invoke.cont53, %if.then51, %invoke.cont47, %invoke.cont45, %invoke.cont44, %invoke.cont41, %invoke.cont40, %while.body37, %while.cond34, %invoke.cont31, %invoke.cont30, %invoke.cont27, %while.body, %while.cond, %invoke.cont22, %invoke.cont21, %if.else, %invoke.cont15, %invoke.cont14, %if.then, %invoke.cont6, %invoke.cont5, %invoke.cont3, %invoke.cont2, %invoke.cont1, %invoke.cont, %entry
  %15 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %16 = extractvalue { i8*, i32 } %15, 0
  store i8* %16, i8** %exn.slot
  %17 = extractvalue { i8*, i32 } %15, 1
  store i32 %17, i32* %ehselector.slot
  invoke void @_ZNSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EED1Ev(%"class.std::vector.51"* %stack)
          to label %invoke.cont103 unwind label %terminate.lpad

if.else:                                          ; preds = %invoke.cont9
  %18 = load i32* %u.addr, align 4
  %19 = bitcast %"struct.boost::detail::out_edge_iter"* %agg.tmp19 to i8*
  %20 = bitcast %"struct.boost::detail::out_edge_iter"* %ei to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %19, i8* %20, i32 8, i32 4, i1 false)
  %21 = bitcast %"struct.boost::detail::out_edge_iter"* %agg.tmp20 to i8*
  %22 = bitcast %"struct.boost::detail::out_edge_iter"* %ei_end to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %21, i8* %22, i32 8, i32 4, i1 false)
  invoke void @_ZSt9make_pairIN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS0_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEESG_ESt4pairIT_T0_ESI_SJ_(%"struct.std::pair.37"* sret %agg.tmp18, %"struct.boost::detail::out_edge_iter"* byval align 4 %agg.tmp19, %"struct.boost::detail::out_edge_iter"* byval align 4 %agg.tmp20)
          to label %invoke.cont21 unwind label %lpad

invoke.cont21:                                    ; preds = %if.else
  invoke void @_ZSt9make_pairIjSt4pairIN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EES0_IT_T0_ESJ_SK_(%"struct.std::pair.56"* sret %ref.tmp17, i32 %18, %"struct.std::pair.37"* byval align 4 %agg.tmp18)
          to label %invoke.cont22 unwind label %lpad

invoke.cont22:                                    ; preds = %invoke.cont21
  invoke void @_ZNSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE9push_backERKSI_(%"class.std::vector.51"* %stack, %"struct.std::pair.56"* %ref.tmp17)
          to label %invoke.cont23 unwind label %lpad

invoke.cont23:                                    ; preds = %invoke.cont22
  br label %if.end

if.end:                                           ; preds = %invoke.cont23, %invoke.cont16
  br label %while.cond

while.cond:                                       ; preds = %invoke.cont101, %if.end
  %call25 = invoke zeroext i1 @_ZNKSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE5emptyEv(%"class.std::vector.51"* %stack)
          to label %invoke.cont24 unwind label %lpad

invoke.cont24:                                    ; preds = %while.cond
  %lnot = xor i1 %call25, true
  br i1 %lnot, label %while.body, label %while.end102

while.body:                                       ; preds = %invoke.cont24
  %call28 = invoke %"struct.std::pair.56"* @_ZNSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE4backEv(%"class.std::vector.51"* %stack)
          to label %invoke.cont27 unwind label %lpad

invoke.cont27:                                    ; preds = %while.body
  store %"struct.std::pair.56"* %call28, %"struct.std::pair.56"** %back, align 4
  %23 = load %"struct.std::pair.56"** %back, align 4
  %first = getelementptr inbounds %"struct.std::pair.56"* %23, i32 0, i32 0
  %24 = load i32* %first, align 4
  store i32 %24, i32* %u.addr, align 4
  invoke void @_ZN5boost6tuples3tieINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESH_EENS0_6detail10tie_mapperIT_T0_vvvvvvvvE4typeERSK_RSL_(%"class.boost::tuples::tuple.34"* sret %tmp29, %"struct.boost::detail::out_edge_iter"* %ei, %"struct.boost::detail::out_edge_iter"* %ei_end)
          to label %invoke.cont30 unwind label %lpad

invoke.cont30:                                    ; preds = %invoke.cont27
  %25 = load %"struct.std::pair.56"** %back, align 4
  %second = getelementptr inbounds %"struct.std::pair.56"* %25, i32 0, i32 1
  %call32 = invoke %"class.boost::tuples::tuple.34"* @_ZN5boost6tuples5tupleIRNS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESI_NS0_9null_typeESJ_SJ_SJ_SJ_SJ_SJ_SJ_EaSISH_SH_EERSK_RKSt4pairIT_T0_E(%"class.boost::tuples::tuple.34"* %tmp29, %"struct.std::pair.37"* %second)
          to label %invoke.cont31 unwind label %lpad

invoke.cont31:                                    ; preds = %invoke.cont30
  invoke void @_ZNSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE8pop_backEv(%"class.std::vector.51"* %stack)
          to label %invoke.cont33 unwind label %lpad

invoke.cont33:                                    ; preds = %invoke.cont31
  br label %while.cond34

while.cond34:                                     ; preds = %if.end96, %invoke.cont33
  %26 = bitcast %"struct.boost::detail::out_edge_iter"* %ei to %"class.boost::iterator_facade.33"*
  %27 = bitcast %"struct.boost::detail::out_edge_iter"* %ei_end to %"class.boost::iterator_facade.33"*
  %call36 = invoke zeroext i1 @_ZN5boostneINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESF_NS_27random_access_traversal_tagESF_iSG_SF_SH_SF_iEENS1_23enable_if_interoperableIT_T4_NS_3mpl6apply2INS1_12always_bool2ESJ_SK_E4typeEE4typeERKNS_15iterator_facadeISJ_T0_T1_T2_T3_EERKNSS_ISK_T5_T6_T7_T8_EE(%"class.boost::iterator_facade.33"* %26, %"class.boost::iterator_facade.33"* %27)
          to label %invoke.cont35 unwind label %lpad

invoke.cont35:                                    ; preds = %while.cond34
  br i1 %call36, label %while.body37, label %while.end

while.body37:                                     ; preds = %invoke.cont35
  %28 = bitcast %"struct.boost::detail::out_edge_iter"* %ei to %"class.boost::iterator_facade.33"*
  invoke void @_ZNK5boost15iterator_facadeINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESF_NS_27random_access_traversal_tagESF_iEdeEv(%"class.boost::detail::edge_desc_impl"* sret %ref.tmp39, %"class.boost::iterator_facade.33"* %28)
          to label %invoke.cont40 unwind label %lpad

invoke.cont40:                                    ; preds = %while.body37
  %29 = bitcast %"class.boost::detail::edge_desc_impl"* %ref.tmp39 to %"struct.boost::detail::edge_base"*
  %30 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %call42 = invoke i32 @_ZN5boost6targetINS_12directed_tagEjNS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEET0_RKNS_6detail9edge_baseIT_S6_EERKNS_14adjacency_listIT1_T2_T3_T4_T5_T6_T7_EE(%"struct.boost::detail::edge_base"* %29, %"class.boost::adjacency_list"* %30)
          to label %invoke.cont41 unwind label %lpad

invoke.cont41:                                    ; preds = %invoke.cont40
  store i32 %call42, i32* %v, align 4
  %31 = load %"class.boost::dfs_visitor"** %vis.addr, align 4
  %32 = bitcast %"struct.boost::detail::out_edge_iter"* %ei to %"class.boost::iterator_facade.33"*
  invoke void @_ZNK5boost15iterator_facadeINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESF_NS_27random_access_traversal_tagESF_iEdeEv(%"class.boost::detail::edge_desc_impl"* sret %agg.tmp43, %"class.boost::iterator_facade.33"* %32)
          to label %invoke.cont44 unwind label %lpad

invoke.cont44:                                    ; preds = %invoke.cont41
  %33 = load %"class.boost::adjacency_list"** %g.addr, align 4
  invoke void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEE12examine_edgeINS_6detail14edge_desc_implINS_12directed_tagEjEENS_14adjacency_listINS_4vecSESI_NS_9directedSENS_11no_propertyESK_SK_NS_5listSEEEEEvT_RKT0_(%"class.boost::dfs_visitor"* %31, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp43, %"class.boost::adjacency_list"* %33)
          to label %invoke.cont45 unwind label %lpad

invoke.cont45:                                    ; preds = %invoke.cont44
  %34 = bitcast %"class.boost::shared_array_property_map"* %color to %"struct.boost::put_get_helper.41"*
  %call48 = invoke i32* @_ZN5boost3getINS_25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEERS2_jEET0_RKNS_14put_get_helperIS8_T_EERKT1_(%"struct.boost::put_get_helper.41"* %34, i32* %v)
          to label %invoke.cont47 unwind label %lpad

invoke.cont47:                                    ; preds = %invoke.cont45
  %35 = load i32* %call48
  store i32 %35, i32* %v_color, align 4
  %36 = load i32* %v_color, align 4
  %call50 = invoke i32 @_ZN5boost12color_traitsINS_18default_color_typeEE5whiteEv()
          to label %invoke.cont49 unwind label %lpad

invoke.cont49:                                    ; preds = %invoke.cont47
  %cmp = icmp eq i32 %36, %call50
  br i1 %cmp, label %if.then51, label %if.else79

if.then51:                                        ; preds = %invoke.cont49
  %37 = load %"class.boost::dfs_visitor"** %vis.addr, align 4
  %38 = bitcast %"struct.boost::detail::out_edge_iter"* %ei to %"class.boost::iterator_facade.33"*
  invoke void @_ZNK5boost15iterator_facadeINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESF_NS_27random_access_traversal_tagESF_iEdeEv(%"class.boost::detail::edge_desc_impl"* sret %agg.tmp52, %"class.boost::iterator_facade.33"* %38)
          to label %invoke.cont53 unwind label %lpad

invoke.cont53:                                    ; preds = %if.then51
  %39 = load %"class.boost::adjacency_list"** %g.addr, align 4
  invoke void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEE9tree_edgeINS_6detail14edge_desc_implINS_12directed_tagEjEENS_14adjacency_listINS_4vecSESI_NS_9directedSENS_11no_propertyESK_SK_NS_5listSEEEEEvT_RKT0_(%"class.boost::dfs_visitor"* %37, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp52, %"class.boost::adjacency_list"* %39)
          to label %invoke.cont54 unwind label %lpad

invoke.cont54:                                    ; preds = %invoke.cont53
  %40 = load i32* %u.addr, align 4
  %41 = bitcast %"struct.boost::detail::out_edge_iter"* %ei to %"class.boost::iterator_facade.33"*
  %call59 = invoke %"struct.boost::detail::out_edge_iter"* @_ZN5boost15iterator_facadeINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESF_NS_27random_access_traversal_tagESF_iEppEv(%"class.boost::iterator_facade.33"* %41)
          to label %invoke.cont58 unwind label %lpad

invoke.cont58:                                    ; preds = %invoke.cont54
  %42 = bitcast %"struct.boost::detail::out_edge_iter"* %agg.tmp57 to i8*
  %43 = bitcast %"struct.boost::detail::out_edge_iter"* %call59 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %42, i8* %43, i32 8, i32 4, i1 false)
  %44 = bitcast %"struct.boost::detail::out_edge_iter"* %agg.tmp60 to i8*
  %45 = bitcast %"struct.boost::detail::out_edge_iter"* %ei_end to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %44, i8* %45, i32 8, i32 4, i1 false)
  invoke void @_ZSt9make_pairIN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS0_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEESG_ESt4pairIT_T0_ESI_SJ_(%"struct.std::pair.37"* sret %agg.tmp56, %"struct.boost::detail::out_edge_iter"* byval align 4 %agg.tmp57, %"struct.boost::detail::out_edge_iter"* byval align 4 %agg.tmp60)
          to label %invoke.cont61 unwind label %lpad

invoke.cont61:                                    ; preds = %invoke.cont58
  invoke void @_ZSt9make_pairIjSt4pairIN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EES0_IT_T0_ESJ_SK_(%"struct.std::pair.56"* sret %ref.tmp55, i32 %40, %"struct.std::pair.37"* byval align 4 %agg.tmp56)
          to label %invoke.cont62 unwind label %lpad

invoke.cont62:                                    ; preds = %invoke.cont61
  invoke void @_ZNSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE9push_backERKSI_(%"class.std::vector.51"* %stack, %"struct.std::pair.56"* %ref.tmp55)
          to label %invoke.cont63 unwind label %lpad

invoke.cont63:                                    ; preds = %invoke.cont62
  %46 = load i32* %v, align 4
  store i32 %46, i32* %u.addr, align 4
  %47 = bitcast %"class.boost::shared_array_property_map"* %color to %"struct.boost::put_get_helper.41"*
  %48 = load i32* %u.addr, align 4
  %call65 = invoke i32 @_ZN5boost12color_traitsINS_18default_color_typeEE4grayEv()
          to label %invoke.cont64 unwind label %lpad

invoke.cont64:                                    ; preds = %invoke.cont63
  store i32 %call65, i32* %ref.tmp66, align 4
  invoke void @_ZN5boost3putINS_25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEERS2_jS2_EEvRKNS_14put_get_helperIT0_T_EET1_RKT2_(%"struct.boost::put_get_helper.41"* %47, i32 %48, i32* %ref.tmp66)
          to label %invoke.cont67 unwind label %lpad

invoke.cont67:                                    ; preds = %invoke.cont64
  %49 = load %"class.boost::dfs_visitor"** %vis.addr, align 4
  %50 = load i32* %u.addr, align 4
  %51 = load %"class.boost::adjacency_list"** %g.addr, align 4
  invoke void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEE15discover_vertexIjNS_14adjacency_listINS_4vecSESE_NS_9directedSENS_11no_propertyESG_SG_NS_5listSEEEEEvT_RKT0_(%"class.boost::dfs_visitor"* %49, i32 %50, %"class.boost::adjacency_list"* %51)
          to label %invoke.cont68 unwind label %lpad

invoke.cont68:                                    ; preds = %invoke.cont67
  invoke void @_ZN5boost6tuples3tieINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESH_EENS0_6detail10tie_mapperIT_T0_vvvvvvvvE4typeERSK_RSL_(%"class.boost::tuples::tuple.34"* sret %tmp69, %"struct.boost::detail::out_edge_iter"* %ei, %"struct.boost::detail::out_edge_iter"* %ei_end)
          to label %invoke.cont70 unwind label %lpad

invoke.cont70:                                    ; preds = %invoke.cont68
  %52 = load i32* %u.addr, align 4
  %53 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %54 = bitcast %"class.boost::adjacency_list"* %53 to %"struct.boost::adj_list_helper"*
  invoke void @_ZN5boost9out_edgesINS_6detail12adj_list_genINS_14adjacency_listINS_4vecSES4_NS_9directedSENS_11no_propertyES6_S6_NS_5listSEEES4_S4_S5_S6_S6_S6_S7_E6configENS_21directed_graph_helperISA_EEEESt4pairINT_17out_edge_iteratorESF_ENSE_17vertex_descriptorERKNS_15adj_list_helperISE_T0_EE(%"struct.std::pair.37"* sret %ref.tmp71, i32 %52, %"struct.boost::adj_list_helper"* %54)
          to label %invoke.cont72 unwind label %lpad

invoke.cont72:                                    ; preds = %invoke.cont70
  %call74 = invoke %"class.boost::tuples::tuple.34"* @_ZN5boost6tuples5tupleIRNS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS_12directed_tagEjEEiEESI_NS0_9null_typeESJ_SJ_SJ_SJ_SJ_SJ_SJ_EaSISH_SH_EERSK_RKSt4pairIT_T0_E(%"class.boost::tuples::tuple.34"* %tmp69, %"struct.std::pair.37"* %ref.tmp71)
          to label %invoke.cont73 unwind label %lpad

invoke.cont73:                                    ; preds = %invoke.cont72
  %55 = load %"struct.boost::detail::nontruth2"** %fn, align 4
  %56 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %call76 = invoke zeroext i1 @_ZNK5boost6detail9nontruth2clIjNS_14adjacency_listINS_4vecSES4_NS_9directedSENS_11no_propertyES6_S6_NS_5listSEEEEEbRKT_RKT0_(%"struct.boost::detail::nontruth2"* %55, i32* %u.addr, %"class.boost::adjacency_list"* %56)
          to label %invoke.cont75 unwind label %lpad

invoke.cont75:                                    ; preds = %invoke.cont73
  br i1 %call76, label %if.then77, label %if.end78

if.then77:                                        ; preds = %invoke.cont75
  %57 = bitcast %"struct.boost::detail::out_edge_iter"* %ei to i8*
  %58 = bitcast %"struct.boost::detail::out_edge_iter"* %ei_end to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %57, i8* %58, i32 8, i32 4, i1 false)
  br label %if.end78

if.end78:                                         ; preds = %if.then77, %invoke.cont75
  br label %if.end96

if.else79:                                        ; preds = %invoke.cont49
  %59 = load i32* %v_color, align 4
  %call81 = invoke i32 @_ZN5boost12color_traitsINS_18default_color_typeEE4grayEv()
          to label %invoke.cont80 unwind label %lpad

invoke.cont80:                                    ; preds = %if.else79
  %cmp82 = icmp eq i32 %59, %call81
  br i1 %cmp82, label %if.then83, label %if.else89

if.then83:                                        ; preds = %invoke.cont80
  %60 = load %"class.boost::dfs_visitor"** %vis.addr, align 4
  %61 = bitcast %"struct.boost::detail::out_edge_iter"* %ei to %"class.boost::iterator_facade.33"*
  invoke void @_ZNK5boost15iterator_facadeINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESF_NS_27random_access_traversal_tagESF_iEdeEv(%"class.boost::detail::edge_desc_impl"* sret %agg.tmp84, %"class.boost::iterator_facade.33"* %61)
          to label %invoke.cont85 unwind label %lpad

invoke.cont85:                                    ; preds = %if.then83
  %62 = load %"class.boost::adjacency_list"** %g.addr, align 4
  invoke void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEE9back_edgeINS_6detail14edge_desc_implINS_12directed_tagEjEENS_14adjacency_listINS_4vecSESI_NS_9directedSENS_11no_propertyESK_SK_NS_5listSEEEEEvT_RKT0_(%"class.boost::dfs_visitor"* %60, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp84, %"class.boost::adjacency_list"* %62)
          to label %invoke.cont86 unwind label %lpad

invoke.cont86:                                    ; preds = %invoke.cont85
  %63 = bitcast %"struct.boost::detail::out_edge_iter"* %ei to %"class.boost::iterator_facade.33"*
  %call88 = invoke %"struct.boost::detail::out_edge_iter"* @_ZN5boost15iterator_facadeINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESF_NS_27random_access_traversal_tagESF_iEppEv(%"class.boost::iterator_facade.33"* %63)
          to label %invoke.cont87 unwind label %lpad

invoke.cont87:                                    ; preds = %invoke.cont86
  br label %if.end95

if.else89:                                        ; preds = %invoke.cont80
  %64 = load %"class.boost::dfs_visitor"** %vis.addr, align 4
  %65 = bitcast %"struct.boost::detail::out_edge_iter"* %ei to %"class.boost::iterator_facade.33"*
  invoke void @_ZNK5boost15iterator_facadeINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESF_NS_27random_access_traversal_tagESF_iEdeEv(%"class.boost::detail::edge_desc_impl"* sret %agg.tmp90, %"class.boost::iterator_facade.33"* %65)
          to label %invoke.cont91 unwind label %lpad

invoke.cont91:                                    ; preds = %if.else89
  %66 = load %"class.boost::adjacency_list"** %g.addr, align 4
  invoke void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEE21forward_or_cross_edgeINS_6detail14edge_desc_implINS_12directed_tagEjEENS_14adjacency_listINS_4vecSESI_NS_9directedSENS_11no_propertyESK_SK_NS_5listSEEEEEvT_RKT0_(%"class.boost::dfs_visitor"* %64, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp90, %"class.boost::adjacency_list"* %66)
          to label %invoke.cont92 unwind label %lpad

invoke.cont92:                                    ; preds = %invoke.cont91
  %67 = bitcast %"struct.boost::detail::out_edge_iter"* %ei to %"class.boost::iterator_facade.33"*
  %call94 = invoke %"struct.boost::detail::out_edge_iter"* @_ZN5boost15iterator_facadeINS_6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS_12directed_tagEjEEiEESF_NS_27random_access_traversal_tagESF_iEppEv(%"class.boost::iterator_facade.33"* %67)
          to label %invoke.cont93 unwind label %lpad

invoke.cont93:                                    ; preds = %invoke.cont92
  br label %if.end95

if.end95:                                         ; preds = %invoke.cont93, %invoke.cont87
  br label %if.end96

if.end96:                                         ; preds = %if.end95, %if.end78
  br label %while.cond34

while.end:                                        ; preds = %invoke.cont35
  %68 = bitcast %"class.boost::shared_array_property_map"* %color to %"struct.boost::put_get_helper.41"*
  %69 = load i32* %u.addr, align 4
  %call98 = invoke i32 @_ZN5boost12color_traitsINS_18default_color_typeEE5blackEv()
          to label %invoke.cont97 unwind label %lpad

invoke.cont97:                                    ; preds = %while.end
  store i32 %call98, i32* %ref.tmp99, align 4
  invoke void @_ZN5boost3putINS_25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEERS2_jS2_EEvRKNS_14put_get_helperIT0_T_EET1_RKT2_(%"struct.boost::put_get_helper.41"* %68, i32 %69, i32* %ref.tmp99)
          to label %invoke.cont100 unwind label %lpad

invoke.cont100:                                   ; preds = %invoke.cont97
  %70 = load %"class.boost::dfs_visitor"** %vis.addr, align 4
  %71 = load i32* %u.addr, align 4
  %72 = load %"class.boost::adjacency_list"** %g.addr, align 4
  invoke void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEE13finish_vertexIjNS_14adjacency_listINS_4vecSESE_NS_9directedSENS_11no_propertyESG_SG_NS_5listSEEEEEvT_RKT0_(%"class.boost::dfs_visitor"* %70, i32 %71, %"class.boost::adjacency_list"* %72)
          to label %invoke.cont101 unwind label %lpad

invoke.cont101:                                   ; preds = %invoke.cont100
  br label %while.cond

while.end102:                                     ; preds = %invoke.cont24
  call void @_ZNSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EED1Ev(%"class.std::vector.51"* %stack)
  ret void

invoke.cont103:                                   ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont103
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val104 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val104

terminate.lpad:                                   ; preds = %lpad
  %73 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEC1ERKS5_(%"class.boost::shared_array_property_map"* %this, %"class.boost::shared_array_property_map"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::shared_array_property_map"*, align 4
  %.addr = alloca %"class.boost::shared_array_property_map"*, align 4
  store %"class.boost::shared_array_property_map"* %this, %"class.boost::shared_array_property_map"** %this.addr, align 4
  store %"class.boost::shared_array_property_map"* %0, %"class.boost::shared_array_property_map"** %.addr, align 4
  %this1 = load %"class.boost::shared_array_property_map"** %this.addr
  %1 = load %"class.boost::shared_array_property_map"** %.addr
  call void @_ZN5boost25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEC2ERKS5_(%"class.boost::shared_array_property_map"* %this1, %"class.boost::shared_array_property_map"* %1)
  ret void
}

define linkonce_odr i32* @_ZN5boost3getINS_25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEERS2_jEET0_RKNS_14put_get_helperIS8_T_EERKT1_(%"struct.boost::put_get_helper.41"* %pa, i32* %k) inlinehint {
entry:
  %pa.addr = alloca %"struct.boost::put_get_helper.41"*, align 4
  %k.addr = alloca i32*, align 4
  %v = alloca i32*, align 4
  store %"struct.boost::put_get_helper.41"* %pa, %"struct.boost::put_get_helper.41"** %pa.addr, align 4
  store i32* %k, i32** %k.addr, align 4
  %0 = load %"struct.boost::put_get_helper.41"** %pa.addr, align 4
  %1 = bitcast %"struct.boost::put_get_helper.41"* %0 to %"class.boost::shared_array_property_map"*
  %2 = load i32** %k.addr, align 4
  %3 = load i32* %2, align 4
  %call = call i32* @_ZNK5boost25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEixEj(%"class.boost::shared_array_property_map"* %1, i32 %3)
  store i32* %call, i32** %v, align 4
  %4 = load i32** %v, align 4
  ret i32* %4
}

define linkonce_odr i32* @_ZNK5boost25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEixEj(%"class.boost::shared_array_property_map"* %this, i32 %v) inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::shared_array_property_map"*, align 4
  %v.addr = alloca i32, align 4
  store %"class.boost::shared_array_property_map"* %this, %"class.boost::shared_array_property_map"** %this.addr, align 4
  store i32 %v, i32* %v.addr, align 4
  %this1 = load %"class.boost::shared_array_property_map"** %this.addr
  %data = getelementptr inbounds %"class.boost::shared_array_property_map"* %this1, i32 0, i32 0
  %index = getelementptr inbounds %"class.boost::shared_array_property_map"* %this1, i32 0, i32 1
  %0 = bitcast %"struct.boost::vec_adj_list_vertex_id_map"* %index to %"struct.boost::put_get_helper"*
  %call = call i32 @_ZN5boost3getINS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEjjEET0_RKNS_14put_get_helperIS4_T_EERKT1_(%"struct.boost::put_get_helper"* %0, i32* %v.addr)
  %call2 = call i32* @_ZNK5boost12shared_arrayINS_18default_color_typeEEixEi(%"class.boost::shared_array.42"* %data, i32 %call)
  ret i32* %call2
}

define linkonce_odr i32* @_ZNK5boost12shared_arrayINS_18default_color_typeEEixEi(%"class.boost::shared_array.42"* %this, i32 %i) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::shared_array.42"*, align 4
  %i.addr = alloca i32, align 4
  store %"class.boost::shared_array.42"* %this, %"class.boost::shared_array.42"** %this.addr, align 4
  store i32 %i, i32* %i.addr, align 4
  %this1 = load %"class.boost::shared_array.42"** %this.addr
  %px = getelementptr inbounds %"class.boost::shared_array.42"* %this1, i32 0, i32 0
  %0 = load i32** %px, align 4
  %cmp = icmp ne i32* %0, null
  br i1 %cmp, label %cond.true, label %cond.false

cond.true:                                        ; preds = %entry
  br label %cond.end

cond.false:                                       ; preds = %entry
  call void @__assert_fail(i8* getelementptr inbounds ([8 x i8]* @.str12, i32 0, i32 0), i8* getelementptr inbounds ([59 x i8]* @.str13, i32 0, i32 0), i32 105, i8* getelementptr inbounds ([116 x i8]* @__PRETTY_FUNCTION__._ZNK5boost12shared_arrayINS_18default_color_typeEEixEi, i32 0, i32 0)) noreturn nounwind
  unreachable
                                                  ; No predecessors!
  br label %cond.end

cond.end:                                         ; preds = %1, %cond.true
  %2 = load i32* %i.addr, align 4
  %cmp2 = icmp sge i32 %2, 0
  br i1 %cmp2, label %cond.true3, label %cond.false4

cond.true3:                                       ; preds = %cond.end
  br label %cond.end5

cond.false4:                                      ; preds = %cond.end
  call void @__assert_fail(i8* getelementptr inbounds ([7 x i8]* @.str14, i32 0, i32 0), i8* getelementptr inbounds ([59 x i8]* @.str13, i32 0, i32 0), i32 106, i8* getelementptr inbounds ([116 x i8]* @__PRETTY_FUNCTION__._ZNK5boost12shared_arrayINS_18default_color_typeEEixEi, i32 0, i32 0)) noreturn nounwind
  unreachable
                                                  ; No predecessors!
  br label %cond.end5

cond.end5:                                        ; preds = %3, %cond.true3
  %4 = load i32* %i.addr, align 4
  %px6 = getelementptr inbounds %"class.boost::shared_array.42"* %this1, i32 0, i32 0
  %5 = load i32** %px6, align 4
  %arrayidx = getelementptr inbounds i32* %5, i32 %4
  ret i32* %arrayidx
}

define linkonce_odr void @_ZN5boost25shared_array_property_mapINS_18default_color_typeENS_26vec_adj_list_vertex_id_mapINS_11no_propertyEjEEEC2ERKS5_(%"class.boost::shared_array_property_map"* %this, %"class.boost::shared_array_property_map"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::shared_array_property_map"*, align 4
  %.addr = alloca %"class.boost::shared_array_property_map"*, align 4
  store %"class.boost::shared_array_property_map"* %this, %"class.boost::shared_array_property_map"** %this.addr, align 4
  store %"class.boost::shared_array_property_map"* %0, %"class.boost::shared_array_property_map"** %.addr, align 4
  %this1 = load %"class.boost::shared_array_property_map"** %this.addr
  %1 = bitcast %"class.boost::shared_array_property_map"* %this1 to %"struct.boost::put_get_helper.41"*
  %2 = load %"class.boost::shared_array_property_map"** %.addr, align 4
  %3 = bitcast %"class.boost::shared_array_property_map"* %2 to %"struct.boost::put_get_helper.41"*
  %data = getelementptr inbounds %"class.boost::shared_array_property_map"* %this1, i32 0, i32 0
  %4 = load %"class.boost::shared_array_property_map"** %.addr, align 4
  %data2 = getelementptr inbounds %"class.boost::shared_array_property_map"* %4, i32 0, i32 0
  call void @_ZN5boost12shared_arrayINS_18default_color_typeEEC1ERKS2_(%"class.boost::shared_array.42"* %data, %"class.boost::shared_array.42"* %data2)
  %index = getelementptr inbounds %"class.boost::shared_array_property_map"* %this1, i32 0, i32 1
  %5 = load %"class.boost::shared_array_property_map"** %.addr, align 4
  %index3 = getelementptr inbounds %"class.boost::shared_array_property_map"* %5, i32 0, i32 1
  ret void
}

define linkonce_odr void @_ZN5boost12shared_arrayINS_18default_color_typeEEC1ERKS2_(%"class.boost::shared_array.42"* %this, %"class.boost::shared_array.42"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::shared_array.42"*, align 4
  %.addr = alloca %"class.boost::shared_array.42"*, align 4
  store %"class.boost::shared_array.42"* %this, %"class.boost::shared_array.42"** %this.addr, align 4
  store %"class.boost::shared_array.42"* %0, %"class.boost::shared_array.42"** %.addr, align 4
  %this1 = load %"class.boost::shared_array.42"** %this.addr
  %1 = load %"class.boost::shared_array.42"** %.addr
  call void @_ZN5boost12shared_arrayINS_18default_color_typeEEC2ERKS2_(%"class.boost::shared_array.42"* %this1, %"class.boost::shared_array.42"* %1)
  ret void
}

define linkonce_odr void @_ZN5boost12shared_arrayINS_18default_color_typeEEC2ERKS2_(%"class.boost::shared_array.42"* %this, %"class.boost::shared_array.42"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::shared_array.42"*, align 4
  %.addr = alloca %"class.boost::shared_array.42"*, align 4
  store %"class.boost::shared_array.42"* %this, %"class.boost::shared_array.42"** %this.addr, align 4
  store %"class.boost::shared_array.42"* %0, %"class.boost::shared_array.42"** %.addr, align 4
  %this1 = load %"class.boost::shared_array.42"** %this.addr
  %px = getelementptr inbounds %"class.boost::shared_array.42"* %this1, i32 0, i32 0
  %1 = load %"class.boost::shared_array.42"** %.addr, align 4
  %px2 = getelementptr inbounds %"class.boost::shared_array.42"* %1, i32 0, i32 0
  %2 = load i32** %px2, align 4
  store i32* %2, i32** %px, align 4
  %pn = getelementptr inbounds %"class.boost::shared_array.42"* %this1, i32 0, i32 1
  %3 = load %"class.boost::shared_array.42"** %.addr, align 4
  %pn3 = getelementptr inbounds %"class.boost::shared_array.42"* %3, i32 0, i32 1
  call void @_ZN5boost6detail12shared_countC1ERKS1_(%"class.boost::detail::shared_count"* %pn, %"class.boost::detail::shared_count"* %pn3)
  ret void
}

define linkonce_odr void @_ZNSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EEC1Ev(%"class.std::vector.51"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector.51"*, align 4
  store %"class.std::vector.51"* %this, %"class.std::vector.51"** %this.addr, align 4
  %this1 = load %"class.std::vector.51"** %this.addr
  call void @_ZNSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EEC2Ev(%"class.std::vector.51"* %this1)
  ret void
}

define linkonce_odr i32 @_ZN5boost12color_traitsINS_18default_color_typeEE4grayEv() nounwind align 2 {
entry:
  ret i32 1
}

define linkonce_odr void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEE15discover_vertexIjNS_14adjacency_listINS_4vecSESE_NS_9directedSENS_11no_propertyESG_SG_NS_5listSEEEEEvT_RKT0_(%"class.boost::dfs_visitor"* %this, i32 %u, %"class.boost::adjacency_list"* %g) align 2 {
entry:
  %this.addr = alloca %"class.boost::dfs_visitor"*, align 4
  %u.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %agg.tmp = alloca %"struct.boost::on_discover_vertex", align 1
  store %"class.boost::dfs_visitor"* %this, %"class.boost::dfs_visitor"** %this.addr, align 4
  store i32 %u, i32* %u.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"class.boost::dfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::dfs_visitor"* %this1, i32 0, i32 0
  %0 = load i32* %u.addr, align 4
  %1 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEESt4pairIS1_INS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEEEjKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEENS_18on_discover_vertexEEEvRS4_IT_T0_ET1_RT2_T3_(%"struct.std::pair.8"* %m_vis, i32 %0, %"class.boost::adjacency_list"* %1)
  ret void
}

define linkonce_odr zeroext i1 @_ZNK5boost6detail9nontruth2clIjNS_14adjacency_listINS_4vecSES4_NS_9directedSENS_11no_propertyES6_S6_NS_5listSEEEEEbRKT_RKT0_(%"struct.boost::detail::nontruth2"* %this, i32*, %"class.boost::adjacency_list"*) nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::nontruth2"*, align 4
  %.addr = alloca i32*, align 4
  %.addr1 = alloca %"class.boost::adjacency_list"*, align 4
  store %"struct.boost::detail::nontruth2"* %this, %"struct.boost::detail::nontruth2"** %this.addr, align 4
  store i32* %0, i32** %.addr, align 4
  store %"class.boost::adjacency_list"* %1, %"class.boost::adjacency_list"** %.addr1, align 4
  %this2 = load %"struct.boost::detail::nontruth2"** %this.addr
  ret i1 false
}

define linkonce_odr void @_ZNSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE9push_backERKSI_(%"class.std::vector.51"* %this, %"struct.std::pair.56"* %__x) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.51"*, align 4
  %__x.addr = alloca %"struct.std::pair.56"*, align 4
  %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator.57", align 4
  store %"class.std::vector.51"* %this, %"class.std::vector.51"** %this.addr, align 4
  store %"struct.std::pair.56"* %__x, %"struct.std::pair.56"** %__x.addr, align 4
  %this1 = load %"class.std::vector.51"** %this.addr
  %0 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.52"* %0, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl, i32 0, i32 1
  %1 = load %"struct.std::pair.56"** %_M_finish, align 4
  %2 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base.52"* %2, i32 0, i32 0
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl2, i32 0, i32 2
  %3 = load %"struct.std::pair.56"** %_M_end_of_storage, align 4
  %cmp = icmp ne %"struct.std::pair.56"* %1, %3
  br i1 %cmp, label %if.then, label %if.else

if.then:                                          ; preds = %entry
  %4 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl3 = getelementptr inbounds %"struct.std::_Vector_base.52"* %4, i32 0, i32 0
  %5 = bitcast %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl3 to %"class.__gnu_cxx::new_allocator.54"*
  %6 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl4 = getelementptr inbounds %"struct.std::_Vector_base.52"* %6, i32 0, i32 0
  %_M_finish5 = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl4, i32 0, i32 1
  %7 = load %"struct.std::pair.56"** %_M_finish5, align 4
  %8 = load %"struct.std::pair.56"** %__x.addr, align 4
  call void @_ZN9__gnu_cxx13new_allocatorISt4pairIjS1_IN5boost6detail13out_edge_iterINS_17__normal_iteratorIPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESH_EEE9constructEPSJ_RKSJ_(%"class.__gnu_cxx::new_allocator.54"* %5, %"struct.std::pair.56"* %7, %"struct.std::pair.56"* %8)
  %9 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl6 = getelementptr inbounds %"struct.std::_Vector_base.52"* %9, i32 0, i32 0
  %_M_finish7 = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl6, i32 0, i32 1
  %10 = load %"struct.std::pair.56"** %_M_finish7, align 4
  %incdec.ptr = getelementptr inbounds %"struct.std::pair.56"* %10, i32 1
  store %"struct.std::pair.56"* %incdec.ptr, %"struct.std::pair.56"** %_M_finish7, align 4
  br label %if.end

if.else:                                          ; preds = %entry
  call void @_ZNSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE3endEv(%"class.__gnu_cxx::__normal_iterator.57"* sret %agg.tmp, %"class.std::vector.51"* %this1)
  %11 = load %"struct.std::pair.56"** %__x.addr, align 4
  call void @_ZNSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE13_M_insert_auxENS5_IPSI_SK_EERKSI_(%"class.std::vector.51"* %this1, %"class.__gnu_cxx::__normal_iterator.57"* byval align 4 %agg.tmp, %"struct.std::pair.56"* %11)
  br label %if.end

if.end:                                           ; preds = %if.else, %if.then
  ret void
}

define linkonce_odr void @_ZSt9make_pairIjSt4pairIN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EES0_IT_T0_ESJ_SK_(%"struct.std::pair.56"* noalias sret %agg.result, i32 %__x, %"struct.std::pair.37"* byval align 4 %__y) inlinehint {
entry:
  %__x.addr = alloca i32, align 4
  store i32 %__x, i32* %__x.addr, align 4
  call void @_ZNSt4pairIjS_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS0_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEESG_EEC1ERKjRKSH_(%"struct.std::pair.56"* %agg.result, i32* %__x.addr, %"struct.std::pair.37"* %__y)
  ret void
}

define linkonce_odr zeroext i1 @_ZNKSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE5emptyEv(%"class.std::vector.51"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.51"*, align 4
  %ref.tmp = alloca %"class.__gnu_cxx::__normal_iterator.58", align 4
  %ref.tmp2 = alloca %"class.__gnu_cxx::__normal_iterator.58", align 4
  store %"class.std::vector.51"* %this, %"class.std::vector.51"** %this.addr, align 4
  %this1 = load %"class.std::vector.51"** %this.addr
  call void @_ZNKSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE5beginEv(%"class.__gnu_cxx::__normal_iterator.58"* sret %ref.tmp, %"class.std::vector.51"* %this1)
  call void @_ZNKSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE3endEv(%"class.__gnu_cxx::__normal_iterator.58"* sret %ref.tmp2, %"class.std::vector.51"* %this1)
  %call = call zeroext i1 @_ZN9__gnu_cxxeqIPKSt4pairIjS1_IN5boost6detail13out_edge_iterINS_17__normal_iteratorIPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESH_EESA_ISJ_SaISJ_EEEEbRKNS5_IT_T0_EESS_(%"class.__gnu_cxx::__normal_iterator.58"* %ref.tmp, %"class.__gnu_cxx::__normal_iterator.58"* %ref.tmp2)
  ret i1 %call
}

define linkonce_odr %"struct.std::pair.56"* @_ZNSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE4backEv(%"class.std::vector.51"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.51"*, align 4
  %tmp = alloca %"class.__gnu_cxx::__normal_iterator.57", align 4
  %ref.tmp = alloca i32, align 4
  %tmp2 = alloca %"class.__gnu_cxx::__normal_iterator.57", align 4
  store %"class.std::vector.51"* %this, %"class.std::vector.51"** %this.addr, align 4
  %this1 = load %"class.std::vector.51"** %this.addr
  call void @_ZNSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE3endEv(%"class.__gnu_cxx::__normal_iterator.57"* sret %tmp, %"class.std::vector.51"* %this1)
  store i32 1, i32* %ref.tmp, align 4
  call void @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIjS1_IN5boost6detail13out_edge_iterINS0_IPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESG_EES9_ISI_SaISI_EEEmiERKi(%"class.__gnu_cxx::__normal_iterator.57"* sret %tmp2, %"class.__gnu_cxx::__normal_iterator.57"* %tmp, i32* %ref.tmp)
  %call = call %"struct.std::pair.56"* @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIjS1_IN5boost6detail13out_edge_iterINS0_IPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESG_EES9_ISI_SaISI_EEEdeEv(%"class.__gnu_cxx::__normal_iterator.57"* %tmp2)
  ret %"struct.std::pair.56"* %call
}

define linkonce_odr void @_ZNSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE8pop_backEv(%"class.std::vector.51"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.51"*, align 4
  store %"class.std::vector.51"* %this, %"class.std::vector.51"** %this.addr, align 4
  %this1 = load %"class.std::vector.51"** %this.addr
  %0 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.52"* %0, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl, i32 0, i32 1
  %1 = load %"struct.std::pair.56"** %_M_finish, align 4
  %incdec.ptr = getelementptr inbounds %"struct.std::pair.56"* %1, i32 -1
  store %"struct.std::pair.56"* %incdec.ptr, %"struct.std::pair.56"** %_M_finish, align 4
  %2 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base.52"* %2, i32 0, i32 0
  %3 = bitcast %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl2 to %"class.__gnu_cxx::new_allocator.54"*
  %4 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl3 = getelementptr inbounds %"struct.std::_Vector_base.52"* %4, i32 0, i32 0
  %_M_finish4 = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl3, i32 0, i32 1
  %5 = load %"struct.std::pair.56"** %_M_finish4, align 4
  call void @_ZN9__gnu_cxx13new_allocatorISt4pairIjS1_IN5boost6detail13out_edge_iterINS_17__normal_iteratorIPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESH_EEE7destroyEPSJ_(%"class.__gnu_cxx::new_allocator.54"* %3, %"struct.std::pair.56"* %5)
  ret void
}

define linkonce_odr void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEE12examine_edgeINS_6detail14edge_desc_implINS_12directed_tagEjEENS_14adjacency_listINS_4vecSESI_NS_9directedSENS_11no_propertyESK_SK_NS_5listSEEEEEvT_RKT0_(%"class.boost::dfs_visitor"* %this, %"class.boost::detail::edge_desc_impl"* byval align 4 %u, %"class.boost::adjacency_list"* %g) align 2 {
entry:
  %this.addr = alloca %"class.boost::dfs_visitor"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp2 = alloca %"struct.boost::on_examine_edge", align 1
  store %"class.boost::dfs_visitor"* %this, %"class.boost::dfs_visitor"** %this.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"class.boost::dfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::dfs_visitor"* %this1, i32 0, i32 0
  %0 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %1 = bitcast %"class.boost::detail::edge_desc_impl"* %u to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 12, i32 4, i1 false)
  %2 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEESt4pairIS1_INS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESF_NS_9directedSENS_11no_propertyESH_SH_NS_5listSEEENS_15on_examine_edgeEEEvRS4_IT_T0_ET1_RT2_T3_(%"struct.std::pair.8"* %m_vis, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %2)
  ret void
}

define linkonce_odr void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEE9tree_edgeINS_6detail14edge_desc_implINS_12directed_tagEjEENS_14adjacency_listINS_4vecSESI_NS_9directedSENS_11no_propertyESK_SK_NS_5listSEEEEEvT_RKT0_(%"class.boost::dfs_visitor"* %this, %"class.boost::detail::edge_desc_impl"* byval align 4 %u, %"class.boost::adjacency_list"* %g) align 2 {
entry:
  %this.addr = alloca %"class.boost::dfs_visitor"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp2 = alloca %"struct.boost::on_tree_edge", align 1
  store %"class.boost::dfs_visitor"* %this, %"class.boost::dfs_visitor"** %this.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"class.boost::dfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::dfs_visitor"* %this1, i32 0, i32 0
  %0 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %1 = bitcast %"class.boost::detail::edge_desc_impl"* %u to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 12, i32 4, i1 false)
  %2 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEESt4pairIS1_INS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESF_NS_9directedSENS_11no_propertyESH_SH_NS_5listSEEES2_EEvRS4_IT_T0_ET1_RT2_T3_(%"struct.std::pair.8"* %m_vis, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %2)
  ret void
}

define linkonce_odr void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEE9back_edgeINS_6detail14edge_desc_implINS_12directed_tagEjEENS_14adjacency_listINS_4vecSESI_NS_9directedSENS_11no_propertyESK_SK_NS_5listSEEEEEvT_RKT0_(%"class.boost::dfs_visitor"* %this, %"class.boost::detail::edge_desc_impl"* byval align 4 %u, %"class.boost::adjacency_list"* %g) align 2 {
entry:
  %this.addr = alloca %"class.boost::dfs_visitor"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp2 = alloca %"struct.boost::on_back_edge", align 1
  store %"class.boost::dfs_visitor"* %this, %"class.boost::dfs_visitor"** %this.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"class.boost::dfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::dfs_visitor"* %this1, i32 0, i32 0
  %0 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %1 = bitcast %"class.boost::detail::edge_desc_impl"* %u to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 12, i32 4, i1 false)
  %2 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEESt4pairIS1_INS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESF_NS_9directedSENS_11no_propertyESH_SH_NS_5listSEEES5_EEvRS4_IT_T0_ET1_RT2_T3_(%"struct.std::pair.8"* %m_vis, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %2)
  ret void
}

define linkonce_odr void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEE21forward_or_cross_edgeINS_6detail14edge_desc_implINS_12directed_tagEjEENS_14adjacency_listINS_4vecSESI_NS_9directedSENS_11no_propertyESK_SK_NS_5listSEEEEEvT_RKT0_(%"class.boost::dfs_visitor"* %this, %"class.boost::detail::edge_desc_impl"* byval align 4 %u, %"class.boost::adjacency_list"* %g) align 2 {
entry:
  %this.addr = alloca %"class.boost::dfs_visitor"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp2 = alloca %"struct.boost::on_forward_or_cross_edge", align 1
  store %"class.boost::dfs_visitor"* %this, %"class.boost::dfs_visitor"** %this.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"class.boost::dfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::dfs_visitor"* %this1, i32 0, i32 0
  %0 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %1 = bitcast %"class.boost::detail::edge_desc_impl"* %u to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 12, i32 4, i1 false)
  %2 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEESt4pairIS1_INS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESF_NS_9directedSENS_11no_propertyESH_SH_NS_5listSEEES7_EEvRS4_IT_T0_ET1_RT2_T3_(%"struct.std::pair.8"* %m_vis, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %2)
  ret void
}

define linkonce_odr i32 @_ZN5boost12color_traitsINS_18default_color_typeEE5blackEv() nounwind align 2 {
entry:
  ret i32 4
}

define linkonce_odr void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEE13finish_vertexIjNS_14adjacency_listINS_4vecSESE_NS_9directedSENS_11no_propertyESG_SG_NS_5listSEEEEEvT_RKT0_(%"class.boost::dfs_visitor"* %this, i32 %u, %"class.boost::adjacency_list"* %g) align 2 {
entry:
  %this.addr = alloca %"class.boost::dfs_visitor"*, align 4
  %u.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %agg.tmp = alloca %"struct.boost::on_finish_vertex", align 1
  store %"class.boost::dfs_visitor"* %this, %"class.boost::dfs_visitor"** %this.addr, align 4
  store i32 %u, i32* %u.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %this1 = load %"class.boost::dfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::dfs_visitor"* %this1, i32 0, i32 0
  %0 = load i32* %u.addr, align 4
  %1 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEESt4pairIS1_INS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEEEjKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEENS_16on_finish_vertexEEEvRS4_IT_T0_ET1_RT2_T3_(%"struct.std::pair.8"* %m_vis, i32 %0, %"class.boost::adjacency_list"* %1)
  ret void
}

define linkonce_odr void @_ZNSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EED1Ev(%"class.std::vector.51"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector.51"*, align 4
  store %"class.std::vector.51"* %this, %"class.std::vector.51"** %this.addr, align 4
  %this1 = load %"class.std::vector.51"** %this.addr
  call void @_ZNSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EED2Ev(%"class.std::vector.51"* %this1)
  ret void
}

define linkonce_odr void @_ZNSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EED2Ev(%"class.std::vector.51"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector.51"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::vector.51"* %this, %"class.std::vector.51"** %this.addr, align 4
  %this1 = load %"class.std::vector.51"** %this.addr
  %0 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.52"* %0, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %1 = load %"struct.std::pair.56"** %_M_start, align 4
  %2 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base.52"* %2, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl2, i32 0, i32 1
  %3 = load %"struct.std::pair.56"** %_M_finish, align 4
  %4 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %call = invoke %"class.std::allocator.53"* @_ZNSt12_Vector_baseISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESaISJ_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.52"* %4)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  invoke void @_ZSt8_DestroyIPSt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESJ_EvT_SL_RSaIT0_E(%"struct.std::pair.56"* %1, %"struct.std::pair.56"* %3, %"class.std::allocator.53"* %call)
          to label %invoke.cont3 unwind label %lpad

invoke.cont3:                                     ; preds = %invoke.cont
  %5 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  call void @_ZNSt12_Vector_baseISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESaISJ_EED2Ev(%"struct.std::_Vector_base.52"* %5)
  ret void

lpad:                                             ; preds = %invoke.cont, %entry
  %6 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %7 = extractvalue { i8*, i32 } %6, 0
  store i8* %7, i8** %exn.slot
  %8 = extractvalue { i8*, i32 } %6, 1
  store i32 %8, i32* %ehselector.slot
  %9 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  invoke void @_ZNSt12_Vector_baseISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESaISJ_EED2Ev(%"struct.std::_Vector_base.52"* %9)
          to label %invoke.cont4 unwind label %terminate.lpad

invoke.cont4:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont4
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val5 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val5

terminate.lpad:                                   ; preds = %lpad
  %10 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZSt8_DestroyIPSt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESJ_EvT_SL_RSaIT0_E(%"struct.std::pair.56"* %__first, %"struct.std::pair.56"* %__last, %"class.std::allocator.53"*) inlinehint {
entry:
  %__first.addr = alloca %"struct.std::pair.56"*, align 4
  %__last.addr = alloca %"struct.std::pair.56"*, align 4
  %.addr = alloca %"class.std::allocator.53"*, align 4
  store %"struct.std::pair.56"* %__first, %"struct.std::pair.56"** %__first.addr, align 4
  store %"struct.std::pair.56"* %__last, %"struct.std::pair.56"** %__last.addr, align 4
  store %"class.std::allocator.53"* %0, %"class.std::allocator.53"** %.addr, align 4
  %1 = load %"struct.std::pair.56"** %__first.addr, align 4
  %2 = load %"struct.std::pair.56"** %__last.addr, align 4
  call void @_ZSt8_DestroyIPSt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EEEvT_SL_(%"struct.std::pair.56"* %1, %"struct.std::pair.56"* %2)
  ret void
}

define linkonce_odr %"class.std::allocator.53"* @_ZNSt12_Vector_baseISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESaISJ_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.52"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base.52"*, align 4
  store %"struct.std::_Vector_base.52"* %this, %"struct.std::_Vector_base.52"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base.52"** %this.addr
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.52"* %this1, i32 0, i32 0
  %0 = bitcast %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl to %"class.std::allocator.53"*
  ret %"class.std::allocator.53"* %0
}

define linkonce_odr void @_ZNSt12_Vector_baseISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESaISJ_EED2Ev(%"struct.std::_Vector_base.52"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base.52"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.std::_Vector_base.52"* %this, %"struct.std::_Vector_base.52"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base.52"** %this.addr
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.52"* %this1, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %0 = load %"struct.std::pair.56"** %_M_start, align 4
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base.52"* %this1, i32 0, i32 0
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl2, i32 0, i32 2
  %1 = load %"struct.std::pair.56"** %_M_end_of_storage, align 4
  %_M_impl3 = getelementptr inbounds %"struct.std::_Vector_base.52"* %this1, i32 0, i32 0
  %_M_start4 = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl3, i32 0, i32 0
  %2 = load %"struct.std::pair.56"** %_M_start4, align 4
  %sub.ptr.lhs.cast = ptrtoint %"struct.std::pair.56"* %1 to i32
  %sub.ptr.rhs.cast = ptrtoint %"struct.std::pair.56"* %2 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 20
  invoke void @_ZNSt12_Vector_baseISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESaISJ_EE13_M_deallocateEPSJ_j(%"struct.std::_Vector_base.52"* %this1, %"struct.std::pair.56"* %0, i32 %sub.ptr.div)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %_M_impl5 = getelementptr inbounds %"struct.std::_Vector_base.52"* %this1, i32 0, i32 0
  call void @_ZNSt12_Vector_baseISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESaISJ_EE12_Vector_implD1Ev(%"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl5) nounwind
  ret void

lpad:                                             ; preds = %entry
  %3 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %4 = extractvalue { i8*, i32 } %3, 0
  store i8* %4, i8** %exn.slot
  %5 = extractvalue { i8*, i32 } %3, 1
  store i32 %5, i32* %ehselector.slot
  %_M_impl6 = getelementptr inbounds %"struct.std::_Vector_base.52"* %this1, i32 0, i32 0
  call void @_ZNSt12_Vector_baseISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESaISJ_EE12_Vector_implD1Ev(%"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl6) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val7 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val7
}

define linkonce_odr void @_ZNSt12_Vector_baseISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESaISJ_EE13_M_deallocateEPSJ_j(%"struct.std::_Vector_base.52"* %this, %"struct.std::pair.56"* %__p, i32 %__n) align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base.52"*, align 4
  %__p.addr = alloca %"struct.std::pair.56"*, align 4
  %__n.addr = alloca i32, align 4
  store %"struct.std::_Vector_base.52"* %this, %"struct.std::_Vector_base.52"** %this.addr, align 4
  store %"struct.std::pair.56"* %__p, %"struct.std::pair.56"** %__p.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  %this1 = load %"struct.std::_Vector_base.52"** %this.addr
  %0 = load %"struct.std::pair.56"** %__p.addr, align 4
  %tobool = icmp ne %"struct.std::pair.56"* %0, null
  br i1 %tobool, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.52"* %this1, i32 0, i32 0
  %1 = bitcast %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl to %"class.__gnu_cxx::new_allocator.54"*
  %2 = load %"struct.std::pair.56"** %__p.addr, align 4
  %3 = load i32* %__n.addr, align 4
  call void @_ZN9__gnu_cxx13new_allocatorISt4pairIjS1_IN5boost6detail13out_edge_iterINS_17__normal_iteratorIPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESH_EEE10deallocateEPSJ_j(%"class.__gnu_cxx::new_allocator.54"* %1, %"struct.std::pair.56"* %2, i32 %3)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
  ret void
}

define linkonce_odr void @_ZNSt12_Vector_baseISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESaISJ_EE12_Vector_implD1Ev(%"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"*, align 4
  store %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %this, %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"** %this.addr
  call void @_ZNSt12_Vector_baseISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESaISJ_EE12_Vector_implD2Ev(%"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %this1) nounwind
  ret void
}

define linkonce_odr void @_ZNSt12_Vector_baseISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESaISJ_EE12_Vector_implD2Ev(%"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"*, align 4
  store %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %this, %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"** %this.addr
  %0 = bitcast %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %this1 to %"class.std::allocator.53"*
  call void @_ZNSaISt4pairIjS_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS0_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEESG_EEED2Ev(%"class.std::allocator.53"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZNSaISt4pairIjS_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS0_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEESG_EEED2Ev(%"class.std::allocator.53"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.53"*, align 4
  store %"class.std::allocator.53"* %this, %"class.std::allocator.53"** %this.addr, align 4
  %this1 = load %"class.std::allocator.53"** %this.addr
  %0 = bitcast %"class.std::allocator.53"* %this1 to %"class.__gnu_cxx::new_allocator.54"*
  call void @_ZN9__gnu_cxx13new_allocatorISt4pairIjS1_IN5boost6detail13out_edge_iterINS_17__normal_iteratorIPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESH_EEED2Ev(%"class.__gnu_cxx::new_allocator.54"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorISt4pairIjS1_IN5boost6detail13out_edge_iterINS_17__normal_iteratorIPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESH_EEED2Ev(%"class.__gnu_cxx::new_allocator.54"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.54"*, align 4
  store %"class.__gnu_cxx::new_allocator.54"* %this, %"class.__gnu_cxx::new_allocator.54"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.54"** %this.addr
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorISt4pairIjS1_IN5boost6detail13out_edge_iterINS_17__normal_iteratorIPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESH_EEE10deallocateEPSJ_j(%"class.__gnu_cxx::new_allocator.54"* %this, %"struct.std::pair.56"* %__p, i32) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.54"*, align 4
  %__p.addr = alloca %"struct.std::pair.56"*, align 4
  %.addr = alloca i32, align 4
  store %"class.__gnu_cxx::new_allocator.54"* %this, %"class.__gnu_cxx::new_allocator.54"** %this.addr, align 4
  store %"struct.std::pair.56"* %__p, %"struct.std::pair.56"** %__p.addr, align 4
  store i32 %0, i32* %.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.54"** %this.addr
  %1 = load %"struct.std::pair.56"** %__p.addr, align 4
  %2 = bitcast %"struct.std::pair.56"* %1 to i8*
  call void @_ZdlPv(i8* %2) nounwind
  ret void
}

define linkonce_odr void @_ZSt8_DestroyIPSt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EEEvT_SL_(%"struct.std::pair.56"* %__first, %"struct.std::pair.56"* %__last) inlinehint {
entry:
  %__first.addr = alloca %"struct.std::pair.56"*, align 4
  %__last.addr = alloca %"struct.std::pair.56"*, align 4
  store %"struct.std::pair.56"* %__first, %"struct.std::pair.56"** %__first.addr, align 4
  store %"struct.std::pair.56"* %__last, %"struct.std::pair.56"** %__last.addr, align 4
  %0 = load %"struct.std::pair.56"** %__first.addr, align 4
  %1 = load %"struct.std::pair.56"** %__last.addr, align 4
  call void @_ZNSt12_Destroy_auxILb1EE9__destroyIPSt4pairIjS2_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS4_20stored_edge_propertyIjNS3_11no_propertyEEESt6vectorISA_SaISA_EEEEjNS4_14edge_desc_implINS3_12directed_tagEjEEiEESJ_EEEEvT_SN_(%"struct.std::pair.56"* %0, %"struct.std::pair.56"* %1)
  ret void
}

define linkonce_odr void @_ZNSt12_Destroy_auxILb1EE9__destroyIPSt4pairIjS2_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS4_20stored_edge_propertyIjNS3_11no_propertyEEESt6vectorISA_SaISA_EEEEjNS4_14edge_desc_implINS3_12directed_tagEjEEiEESJ_EEEEvT_SN_(%"struct.std::pair.56"*, %"struct.std::pair.56"*) nounwind align 2 {
entry:
  %.addr = alloca %"struct.std::pair.56"*, align 4
  %.addr1 = alloca %"struct.std::pair.56"*, align 4
  store %"struct.std::pair.56"* %0, %"struct.std::pair.56"** %.addr, align 4
  store %"struct.std::pair.56"* %1, %"struct.std::pair.56"** %.addr1, align 4
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEESt4pairIS1_INS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEEEjKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEENS_16on_finish_vertexEEEvRS4_IT_T0_ET1_RT2_T3_(%"struct.std::pair.8"* %vlist, i32 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %vlist.addr = alloca %"struct.std::pair.8"*, align 4
  %x.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tag = alloca %"struct.boost::on_finish_vertex", align 1
  %agg.tmp = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  %agg.tmp1 = alloca %"struct.boost::on_finish_vertex", align 1
  store %"struct.std::pair.8"* %vlist, %"struct.std::pair.8"** %vlist.addr, align 4
  store i32 %x, i32* %x.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %0 = load %"struct.std::pair.8"** %vlist.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.8"* %0, i32 0, i32 0
  %1 = load i32* %x.addr, align 4
  %2 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %3 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_tree_edgeEEjKNS_14adjacency_listINS_4vecSES6_NS_9directedSENS_11no_propertyES8_S8_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer* %first, i32 %1, %"class.boost::adjacency_list"* %2)
  %4 = load %"struct.std::pair.8"** %vlist.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.8"* %4, i32 0, i32 1
  %5 = load i32* %x.addr, align 4
  %6 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEEjKNS_14adjacency_listINS_4vecSES7_NS_9directedSENS_11no_propertyES9_S9_NS_5listSEEENS_16on_finish_vertexEEEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.12"* %second, i32 %5, %"class.boost::adjacency_list"* %6)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEEjKNS_14adjacency_listINS_4vecSES7_NS_9directedSENS_11no_propertyES9_S9_NS_5listSEEENS_16on_finish_vertexEEEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.12"* %vlist, i32 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %vlist.addr = alloca %"struct.std::pair.12"*, align 4
  %x.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tag = alloca %"struct.boost::on_finish_vertex", align 1
  %agg.tmp = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  %agg.tmp1 = alloca %"struct.boost::on_finish_vertex", align 1
  store %"struct.std::pair.12"* %vlist, %"struct.std::pair.12"** %vlist.addr, align 4
  store i32 %x, i32* %x.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %0 = load %"struct.std::pair.12"** %vlist.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.12"* %0, i32 0, i32 0
  %1 = load i32* %x.addr, align 4
  %2 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %3 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_back_edgeEEjKNS_14adjacency_listINS_4vecSES6_NS_9directedSENS_11no_propertyES8_S8_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer.13* %first, i32 %1, %"class.boost::adjacency_list"* %2)
  %4 = load %"struct.std::pair.12"** %vlist.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.12"* %4, i32 0, i32 1
  %5 = load i32* %x.addr, align 4
  %6 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_24on_forward_or_cross_edgeEEjKNS_14adjacency_listINS_4vecSES5_NS_9directedSENS_11no_propertyES7_S7_NS_5listSEEENS_16on_finish_vertexEEEvRT_T0_RT1_T2_(%struct.edge_printer.15* %second, i32 %5, %"class.boost::adjacency_list"* %6)
  ret void
}

define linkonce_odr void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_back_edgeEEjKNS_14adjacency_listINS_4vecSES6_NS_9directedSENS_11no_propertyES8_S8_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer.13*, i32, %"class.boost::adjacency_list"*) nounwind inlinehint {
entry:
  %.addr = alloca %struct.edge_printer.13*, align 4
  %.addr1 = alloca i32, align 4
  %.addr2 = alloca %"class.boost::adjacency_list"*, align 4
  %3 = alloca %"struct.mpl_::bool_.38", align 1
  store %struct.edge_printer.13* %0, %struct.edge_printer.13** %.addr, align 4
  store i32 %1, i32* %.addr1, align 4
  store %"class.boost::adjacency_list"* %2, %"class.boost::adjacency_list"** %.addr2, align 4
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_24on_forward_or_cross_edgeEEjKNS_14adjacency_listINS_4vecSES5_NS_9directedSENS_11no_propertyES7_S7_NS_5listSEEENS_16on_finish_vertexEEEvRT_T0_RT1_T2_(%struct.edge_printer.15* %v, i32 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %v.addr = alloca %struct.edge_printer.15*, align 4
  %x.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %0 = alloca %"struct.boost::on_finish_vertex", align 1
  %agg.tmp = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  store %struct.edge_printer.15* %v, %struct.edge_printer.15** %v.addr, align 4
  store i32 %x, i32* %x.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %struct.edge_printer.15** %v.addr, align 4
  %2 = load i32* %x.addr, align 4
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_24on_forward_or_cross_edgeEEjKNS_14adjacency_listINS_4vecSES6_NS_9directedSENS_11no_propertyES8_S8_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer.15* %1, i32 %2, %"class.boost::adjacency_list"* %3)
  ret void
}

define linkonce_odr void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_24on_forward_or_cross_edgeEEjKNS_14adjacency_listINS_4vecSES6_NS_9directedSENS_11no_propertyES8_S8_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer.15*, i32, %"class.boost::adjacency_list"*) nounwind inlinehint {
entry:
  %.addr = alloca %struct.edge_printer.15*, align 4
  %.addr1 = alloca i32, align 4
  %.addr2 = alloca %"class.boost::adjacency_list"*, align 4
  %3 = alloca %"struct.mpl_::bool_.38", align 1
  store %struct.edge_printer.15* %0, %struct.edge_printer.15** %.addr, align 4
  store i32 %1, i32* %.addr1, align 4
  store %"class.boost::adjacency_list"* %2, %"class.boost::adjacency_list"** %.addr2, align 4
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEESt4pairIS1_INS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESF_NS_9directedSENS_11no_propertyESH_SH_NS_5listSEEES7_EEvRS4_IT_T0_ET1_RT2_T3_(%"struct.std::pair.8"* %vlist, %"class.boost::detail::edge_desc_impl"* byval align 4 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %vlist.addr = alloca %"struct.std::pair.8"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tag = alloca %"struct.boost::on_forward_or_cross_edge", align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp1 = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  %agg.tmp2 = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp3 = alloca %"struct.boost::on_forward_or_cross_edge", align 1
  store %"struct.std::pair.8"* %vlist, %"struct.std::pair.8"** %vlist.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %0 = load %"struct.std::pair.8"** %vlist.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.8"* %0, i32 0, i32 0
  %1 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 12, i32 4, i1 false)
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_tree_edgeEENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer* %first, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %3)
  %5 = load %"struct.std::pair.8"** %vlist.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.8"* %5, i32 0, i32 1
  %6 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp2 to i8*
  %7 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %6, i8* %7, i32 12, i32 4, i1 false)
  %8 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEES4_EEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.12"* %second, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp2, %"class.boost::adjacency_list"* %8)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEES4_EEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.12"* %vlist, %"class.boost::detail::edge_desc_impl"* byval align 4 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %vlist.addr = alloca %"struct.std::pair.12"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tag = alloca %"struct.boost::on_forward_or_cross_edge", align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp1 = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  %agg.tmp2 = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp3 = alloca %"struct.boost::on_forward_or_cross_edge", align 1
  store %"struct.std::pair.12"* %vlist, %"struct.std::pair.12"** %vlist.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %0 = load %"struct.std::pair.12"** %vlist.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.12"* %0, i32 0, i32 0
  %1 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 12, i32 4, i1 false)
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_back_edgeEENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer.13* %first, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %3)
  %5 = load %"struct.std::pair.12"** %vlist.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.12"* %5, i32 0, i32 1
  %6 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp2 to i8*
  %7 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %6, i8* %7, i32 12, i32 4, i1 false)
  %8 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_24on_forward_or_cross_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEES2_EEvRT_T0_RT1_T2_(%struct.edge_printer.15* %second, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp2, %"class.boost::adjacency_list"* %8)
  ret void
}

define linkonce_odr void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_back_edgeEENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer.13*, %"class.boost::detail::edge_desc_impl"* byval align 4, %"class.boost::adjacency_list"*) nounwind inlinehint {
entry:
  %.addr = alloca %struct.edge_printer.13*, align 4
  %.addr1 = alloca %"class.boost::adjacency_list"*, align 4
  %3 = alloca %"struct.mpl_::bool_.38", align 1
  store %struct.edge_printer.13* %0, %struct.edge_printer.13** %.addr, align 4
  store %"class.boost::adjacency_list"* %2, %"class.boost::adjacency_list"** %.addr1, align 4
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_24on_forward_or_cross_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEES2_EEvRT_T0_RT1_T2_(%struct.edge_printer.15* %v, %"class.boost::detail::edge_desc_impl"* byval align 4 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %v.addr = alloca %struct.edge_printer.15*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %0 = alloca %"struct.boost::on_forward_or_cross_edge", align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp1 = alloca %"struct.mpl_::bool_", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant.39", align 1
  store %struct.edge_printer.15* %v, %struct.edge_printer.15** %v.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %struct.edge_printer.15** %v.addr, align 4
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %3 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 12, i32 4, i1 false)
  %4 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %5 = bitcast %"struct.boost::integral_constant.39"* %ref.tmp to %"struct.mpl_::bool_"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_24on_forward_or_cross_edgeEENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb1EEE(%struct.edge_printer.15* %1, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %4)
  ret void
}

define linkonce_odr void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_24on_forward_or_cross_edgeEENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb1EEE(%struct.edge_printer.15* %v, %"class.boost::detail::edge_desc_impl"* byval align 4 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %v.addr = alloca %struct.edge_printer.15*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %0 = alloca %"struct.mpl_::bool_", align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  store %struct.edge_printer.15* %v, %struct.edge_printer.15** %v.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %struct.edge_printer.15** %v.addr, align 4
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %3 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 12, i32 4, i1 false)
  %4 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN12edge_printerIN5boost24on_forward_or_cross_edgeEEclINS0_6detail14edge_desc_implINS0_12directed_tagEjEEKNS0_14adjacency_listINS0_4vecSES9_NS0_9directedSENS0_11no_propertyESB_SB_NS0_5listSEEEEEvT_RT0_(%struct.edge_printer.15* %1, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %4)
  ret void
}

define linkonce_odr void @_ZN12edge_printerIN5boost24on_forward_or_cross_edgeEEclINS0_6detail14edge_desc_implINS0_12directed_tagEjEEKNS0_14adjacency_listINS0_4vecSES9_NS0_9directedSENS0_11no_propertyESB_SB_NS0_5listSEEEEEvT_RT0_(%struct.edge_printer.15* %this, %"class.boost::detail::edge_desc_impl"* byval align 4 %e, %"class.boost::adjacency_list"* %G) align 2 {
entry:
  %this.addr = alloca %struct.edge_printer.15*, align 4
  %G.addr = alloca %"class.boost::adjacency_list"*, align 4
  store %struct.edge_printer.15* %this, %struct.edge_printer.15** %this.addr, align 4
  store %"class.boost::adjacency_list"* %G, %"class.boost::adjacency_list"** %G.addr, align 4
  %this1 = load %struct.edge_printer.15** %this.addr
  %m_edge_type = getelementptr inbounds %struct.edge_printer.15* %this1, i32 0, i32 0
  %call = call %"class.std::basic_ostream"* @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E(%"class.std::basic_ostream"* @_ZSt4cout, %"class.std::basic_string"* %m_edge_type)
  %call2 = call %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* %call, i8* getelementptr inbounds ([3 x i8]* @.str7, i32 0, i32 0))
  %0 = bitcast %"class.boost::detail::edge_desc_impl"* %e to %"struct.boost::detail::edge_base"*
  %1 = load %"class.boost::adjacency_list"** %G.addr, align 4
  %call3 = call i32 @_ZN5boost6sourceINS_12directed_tagEjNS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEET0_RKNS_6detail9edge_baseIT_S6_EERKNS_14adjacency_listIT1_T2_T3_T4_T5_T6_T7_EE(%"struct.boost::detail::edge_base"* %0, %"class.boost::adjacency_list"* %1)
  %call4 = call %"class.std::basic_ostream"* @_ZNSolsEj(%"class.std::basic_ostream"* %call2, i32 %call3)
  %call5 = call %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* %call4, i8* getelementptr inbounds ([6 x i8]* @.str8, i32 0, i32 0))
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %e to %"struct.boost::detail::edge_base"*
  %3 = load %"class.boost::adjacency_list"** %G.addr, align 4
  %call6 = call i32 @_ZN5boost6targetINS_12directed_tagEjNS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEET0_RKNS_6detail9edge_baseIT_S6_EERKNS_14adjacency_listIT1_T2_T3_T4_T5_T6_T7_EE(%"struct.boost::detail::edge_base"* %2, %"class.boost::adjacency_list"* %3)
  %call7 = call %"class.std::basic_ostream"* @_ZNSolsEj(%"class.std::basic_ostream"* %call5, i32 %call6)
  %call8 = call %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"* %call7, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEESt4pairIS1_INS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESF_NS_9directedSENS_11no_propertyESH_SH_NS_5listSEEES5_EEvRS4_IT_T0_ET1_RT2_T3_(%"struct.std::pair.8"* %vlist, %"class.boost::detail::edge_desc_impl"* byval align 4 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %vlist.addr = alloca %"struct.std::pair.8"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tag = alloca %"struct.boost::on_back_edge", align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp1 = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  %agg.tmp2 = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp3 = alloca %"struct.boost::on_back_edge", align 1
  store %"struct.std::pair.8"* %vlist, %"struct.std::pair.8"** %vlist.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %0 = load %"struct.std::pair.8"** %vlist.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.8"* %0, i32 0, i32 0
  %1 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 12, i32 4, i1 false)
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_tree_edgeEENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer* %first, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %3)
  %5 = load %"struct.std::pair.8"** %vlist.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.8"* %5, i32 0, i32 1
  %6 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp2 to i8*
  %7 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %6, i8* %7, i32 12, i32 4, i1 false)
  %8 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEES2_EEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.12"* %second, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp2, %"class.boost::adjacency_list"* %8)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEES2_EEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.12"* %vlist, %"class.boost::detail::edge_desc_impl"* byval align 4 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %vlist.addr = alloca %"struct.std::pair.12"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tag = alloca %"struct.boost::on_back_edge", align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp1 = alloca %"struct.mpl_::bool_", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant.39", align 1
  %agg.tmp2 = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp3 = alloca %"struct.boost::on_back_edge", align 1
  store %"struct.std::pair.12"* %vlist, %"struct.std::pair.12"** %vlist.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %0 = load %"struct.std::pair.12"** %vlist.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.12"* %0, i32 0, i32 0
  %1 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 12, i32 4, i1 false)
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = bitcast %"struct.boost::integral_constant.39"* %ref.tmp to %"struct.mpl_::bool_"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_back_edgeEENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb1EEE(%struct.edge_printer.13* %first, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %3)
  %5 = load %"struct.std::pair.12"** %vlist.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.12"* %5, i32 0, i32 1
  %6 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp2 to i8*
  %7 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %6, i8* %7, i32 12, i32 4, i1 false)
  %8 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_24on_forward_or_cross_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEENS_12on_back_edgeEEEvRT_T0_RT1_T2_(%struct.edge_printer.15* %second, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp2, %"class.boost::adjacency_list"* %8)
  ret void
}

define linkonce_odr void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_back_edgeEENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb1EEE(%struct.edge_printer.13* %v, %"class.boost::detail::edge_desc_impl"* byval align 4 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %v.addr = alloca %struct.edge_printer.13*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %0 = alloca %"struct.mpl_::bool_", align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  store %struct.edge_printer.13* %v, %struct.edge_printer.13** %v.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %struct.edge_printer.13** %v.addr, align 4
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %3 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 12, i32 4, i1 false)
  %4 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN12edge_printerIN5boost12on_back_edgeEEclINS0_6detail14edge_desc_implINS0_12directed_tagEjEEKNS0_14adjacency_listINS0_4vecSES9_NS0_9directedSENS0_11no_propertyESB_SB_NS0_5listSEEEEEvT_RT0_(%struct.edge_printer.13* %1, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %4)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_24on_forward_or_cross_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEENS_12on_back_edgeEEEvRT_T0_RT1_T2_(%struct.edge_printer.15* %v, %"class.boost::detail::edge_desc_impl"* byval align 4 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %v.addr = alloca %struct.edge_printer.15*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %0 = alloca %"struct.boost::on_back_edge", align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp1 = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  store %struct.edge_printer.15* %v, %struct.edge_printer.15** %v.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %struct.edge_printer.15** %v.addr, align 4
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %3 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 12, i32 4, i1 false)
  %4 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %5 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_24on_forward_or_cross_edgeEENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer.15* %1, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %4)
  ret void
}

define linkonce_odr void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_24on_forward_or_cross_edgeEENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer.15*, %"class.boost::detail::edge_desc_impl"* byval align 4, %"class.boost::adjacency_list"*) nounwind inlinehint {
entry:
  %.addr = alloca %struct.edge_printer.15*, align 4
  %.addr1 = alloca %"class.boost::adjacency_list"*, align 4
  %3 = alloca %"struct.mpl_::bool_.38", align 1
  store %struct.edge_printer.15* %0, %struct.edge_printer.15** %.addr, align 4
  store %"class.boost::adjacency_list"* %2, %"class.boost::adjacency_list"** %.addr1, align 4
  ret void
}

define linkonce_odr void @_ZN12edge_printerIN5boost12on_back_edgeEEclINS0_6detail14edge_desc_implINS0_12directed_tagEjEEKNS0_14adjacency_listINS0_4vecSES9_NS0_9directedSENS0_11no_propertyESB_SB_NS0_5listSEEEEEvT_RT0_(%struct.edge_printer.13* %this, %"class.boost::detail::edge_desc_impl"* byval align 4 %e, %"class.boost::adjacency_list"* %G) align 2 {
entry:
  %this.addr = alloca %struct.edge_printer.13*, align 4
  %G.addr = alloca %"class.boost::adjacency_list"*, align 4
  store %struct.edge_printer.13* %this, %struct.edge_printer.13** %this.addr, align 4
  store %"class.boost::adjacency_list"* %G, %"class.boost::adjacency_list"** %G.addr, align 4
  %this1 = load %struct.edge_printer.13** %this.addr
  %m_edge_type = getelementptr inbounds %struct.edge_printer.13* %this1, i32 0, i32 0
  %call = call %"class.std::basic_ostream"* @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKSbIS4_S5_T1_E(%"class.std::basic_ostream"* @_ZSt4cout, %"class.std::basic_string"* %m_edge_type)
  %call2 = call %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* %call, i8* getelementptr inbounds ([3 x i8]* @.str7, i32 0, i32 0))
  %0 = bitcast %"class.boost::detail::edge_desc_impl"* %e to %"struct.boost::detail::edge_base"*
  %1 = load %"class.boost::adjacency_list"** %G.addr, align 4
  %call3 = call i32 @_ZN5boost6sourceINS_12directed_tagEjNS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEET0_RKNS_6detail9edge_baseIT_S6_EERKNS_14adjacency_listIT1_T2_T3_T4_T5_T6_T7_EE(%"struct.boost::detail::edge_base"* %0, %"class.boost::adjacency_list"* %1)
  %call4 = call %"class.std::basic_ostream"* @_ZNSolsEj(%"class.std::basic_ostream"* %call2, i32 %call3)
  %call5 = call %"class.std::basic_ostream"* @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(%"class.std::basic_ostream"* %call4, i8* getelementptr inbounds ([6 x i8]* @.str8, i32 0, i32 0))
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %e to %"struct.boost::detail::edge_base"*
  %3 = load %"class.boost::adjacency_list"** %G.addr, align 4
  %call6 = call i32 @_ZN5boost6targetINS_12directed_tagEjNS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEET0_RKNS_6detail9edge_baseIT_S6_EERKNS_14adjacency_listIT1_T2_T3_T4_T5_T6_T7_EE(%"struct.boost::detail::edge_base"* %2, %"class.boost::adjacency_list"* %3)
  %call7 = call %"class.std::basic_ostream"* @_ZNSolsEj(%"class.std::basic_ostream"* %call5, i32 %call6)
  %call8 = call %"class.std::basic_ostream"* @_ZNSolsEPFRSoS_E(%"class.std::basic_ostream"* %call7, %"class.std::basic_ostream"* (%"class.std::basic_ostream"*)* @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEESt4pairIS1_INS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESF_NS_9directedSENS_11no_propertyESH_SH_NS_5listSEEES2_EEvRS4_IT_T0_ET1_RT2_T3_(%"struct.std::pair.8"* %vlist, %"class.boost::detail::edge_desc_impl"* byval align 4 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %vlist.addr = alloca %"struct.std::pair.8"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tag = alloca %"struct.boost::on_tree_edge", align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp1 = alloca %"struct.mpl_::bool_", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant.39", align 1
  %agg.tmp2 = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp3 = alloca %"struct.boost::on_tree_edge", align 1
  store %"struct.std::pair.8"* %vlist, %"struct.std::pair.8"** %vlist.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %0 = load %"struct.std::pair.8"** %vlist.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.8"* %0, i32 0, i32 0
  %1 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 12, i32 4, i1 false)
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = bitcast %"struct.boost::integral_constant.39"* %ref.tmp to %"struct.mpl_::bool_"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_tree_edgeEENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb1EEE(%struct.edge_printer* %first, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %3)
  %5 = load %"struct.std::pair.8"** %vlist.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.8"* %5, i32 0, i32 1
  %6 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp2 to i8*
  %7 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %6, i8* %7, i32 12, i32 4, i1 false)
  %8 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEENS_12on_tree_edgeEEEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.12"* %second, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp2, %"class.boost::adjacency_list"* %8)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEENS_12on_tree_edgeEEEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.12"* %vlist, %"class.boost::detail::edge_desc_impl"* byval align 4 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %vlist.addr = alloca %"struct.std::pair.12"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tag = alloca %"struct.boost::on_tree_edge", align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp1 = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  %agg.tmp2 = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp3 = alloca %"struct.boost::on_tree_edge", align 1
  store %"struct.std::pair.12"* %vlist, %"struct.std::pair.12"** %vlist.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %0 = load %"struct.std::pair.12"** %vlist.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.12"* %0, i32 0, i32 0
  %1 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 12, i32 4, i1 false)
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_back_edgeEENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer.13* %first, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %3)
  %5 = load %"struct.std::pair.12"** %vlist.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.12"* %5, i32 0, i32 1
  %6 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp2 to i8*
  %7 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %6, i8* %7, i32 12, i32 4, i1 false)
  %8 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_24on_forward_or_cross_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEENS_12on_tree_edgeEEEvRT_T0_RT1_T2_(%struct.edge_printer.15* %second, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp2, %"class.boost::adjacency_list"* %8)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_24on_forward_or_cross_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEENS_12on_tree_edgeEEEvRT_T0_RT1_T2_(%struct.edge_printer.15* %v, %"class.boost::detail::edge_desc_impl"* byval align 4 %x, %"class.boost::adjacency_list"* %g) nounwind inlinehint {
entry:
  %v.addr = alloca %struct.edge_printer.15*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %0 = alloca %"struct.boost::on_tree_edge", align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp1 = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  store %struct.edge_printer.15* %v, %struct.edge_printer.15** %v.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %struct.edge_printer.15** %v.addr, align 4
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %3 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 12, i32 4, i1 false)
  %4 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %5 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_24on_forward_or_cross_edgeEENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer.15* %1, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %4)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEESt4pairIS1_INS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESF_NS_9directedSENS_11no_propertyESH_SH_NS_5listSEEENS_15on_examine_edgeEEEvRS4_IT_T0_ET1_RT2_T3_(%"struct.std::pair.8"* %vlist, %"class.boost::detail::edge_desc_impl"* byval align 4 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %vlist.addr = alloca %"struct.std::pair.8"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tag = alloca %"struct.boost::on_examine_edge", align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp1 = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  %agg.tmp2 = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp3 = alloca %"struct.boost::on_examine_edge", align 1
  store %"struct.std::pair.8"* %vlist, %"struct.std::pair.8"** %vlist.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %0 = load %"struct.std::pair.8"** %vlist.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.8"* %0, i32 0, i32 0
  %1 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 12, i32 4, i1 false)
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_tree_edgeEENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer* %first, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %3)
  %5 = load %"struct.std::pair.8"** %vlist.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.8"* %5, i32 0, i32 1
  %6 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp2 to i8*
  %7 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %6, i8* %7, i32 12, i32 4, i1 false)
  %8 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEENS_15on_examine_edgeEEEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.12"* %second, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp2, %"class.boost::adjacency_list"* %8)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEENS_15on_examine_edgeEEEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.12"* %vlist, %"class.boost::detail::edge_desc_impl"* byval align 4 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %vlist.addr = alloca %"struct.std::pair.12"*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tag = alloca %"struct.boost::on_examine_edge", align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp1 = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  %agg.tmp2 = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp3 = alloca %"struct.boost::on_examine_edge", align 1
  store %"struct.std::pair.12"* %vlist, %"struct.std::pair.12"** %vlist.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %0 = load %"struct.std::pair.12"** %vlist.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.12"* %0, i32 0, i32 0
  %1 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 12, i32 4, i1 false)
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_back_edgeEENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer.13* %first, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %3)
  %5 = load %"struct.std::pair.12"** %vlist.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.12"* %5, i32 0, i32 1
  %6 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp2 to i8*
  %7 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %6, i8* %7, i32 12, i32 4, i1 false)
  %8 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_24on_forward_or_cross_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEENS_15on_examine_edgeEEEvRT_T0_RT1_T2_(%struct.edge_printer.15* %second, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp2, %"class.boost::adjacency_list"* %8)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_24on_forward_or_cross_edgeEENS_6detail14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEENS_15on_examine_edgeEEEvRT_T0_RT1_T2_(%struct.edge_printer.15* %v, %"class.boost::detail::edge_desc_impl"* byval align 4 %x, %"class.boost::adjacency_list"* %g) nounwind inlinehint {
entry:
  %v.addr = alloca %struct.edge_printer.15*, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %0 = alloca %"struct.boost::on_examine_edge", align 1
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  %agg.tmp1 = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  store %struct.edge_printer.15* %v, %struct.edge_printer.15** %v.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %struct.edge_printer.15** %v.addr, align 4
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %agg.tmp to i8*
  %3 = bitcast %"class.boost::detail::edge_desc_impl"* %x to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 12, i32 4, i1 false)
  %4 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %5 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_24on_forward_or_cross_edgeEENS0_14edge_desc_implINS_12directed_tagEjEEKNS_14adjacency_listINS_4vecSES9_NS_9directedSENS_11no_propertyESB_SB_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer.15* %1, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, %"class.boost::adjacency_list"* %4)
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorISt4pairIjS1_IN5boost6detail13out_edge_iterINS_17__normal_iteratorIPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESH_EEE7destroyEPSJ_(%"class.__gnu_cxx::new_allocator.54"* %this, %"struct.std::pair.56"* %__p) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.54"*, align 4
  %__p.addr = alloca %"struct.std::pair.56"*, align 4
  store %"class.__gnu_cxx::new_allocator.54"* %this, %"class.__gnu_cxx::new_allocator.54"** %this.addr, align 4
  store %"struct.std::pair.56"* %__p, %"struct.std::pair.56"** %__p.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.54"** %this.addr
  %0 = load %"struct.std::pair.56"** %__p.addr, align 4
  ret void
}

define linkonce_odr void @_ZNSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE3endEv(%"class.__gnu_cxx::__normal_iterator.57"* noalias sret %agg.result, %"class.std::vector.51"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.51"*, align 4
  store %"class.std::vector.51"* %this, %"class.std::vector.51"** %this.addr, align 4
  %this1 = load %"class.std::vector.51"** %this.addr
  %0 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.52"* %0, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl, i32 0, i32 1
  call void @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairIjS1_IN5boost6detail13out_edge_iterINS0_IPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESG_EES9_ISI_SaISI_EEEC1ERKSJ_(%"class.__gnu_cxx::__normal_iterator.57"* %agg.result, %"struct.std::pair.56"** %_M_finish)
  ret void
}

define linkonce_odr void @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIjS1_IN5boost6detail13out_edge_iterINS0_IPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESG_EES9_ISI_SaISI_EEEmiERKi(%"class.__gnu_cxx::__normal_iterator.57"* noalias sret %agg.result, %"class.__gnu_cxx::__normal_iterator.57"* %this, i32* %__n) align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator.57"*, align 4
  %__n.addr = alloca i32*, align 4
  %ref.tmp = alloca %"struct.std::pair.56"*, align 4
  store %"class.__gnu_cxx::__normal_iterator.57"* %this, %"class.__gnu_cxx::__normal_iterator.57"** %this.addr, align 4
  store i32* %__n, i32** %__n.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator.57"** %this.addr
  %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.57"* %this1, i32 0, i32 0
  %0 = load %"struct.std::pair.56"** %_M_current, align 4
  %1 = load i32** %__n.addr, align 4
  %2 = load i32* %1, align 4
  %idx.neg = sub i32 0, %2
  %add.ptr = getelementptr inbounds %"struct.std::pair.56"* %0, i32 %idx.neg
  store %"struct.std::pair.56"* %add.ptr, %"struct.std::pair.56"** %ref.tmp, align 4
  call void @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairIjS1_IN5boost6detail13out_edge_iterINS0_IPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESG_EES9_ISI_SaISI_EEEC1ERKSJ_(%"class.__gnu_cxx::__normal_iterator.57"* %agg.result, %"struct.std::pair.56"** %ref.tmp)
  ret void
}

define linkonce_odr %"struct.std::pair.56"* @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIjS1_IN5boost6detail13out_edge_iterINS0_IPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESG_EES9_ISI_SaISI_EEEdeEv(%"class.__gnu_cxx::__normal_iterator.57"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator.57"*, align 4
  store %"class.__gnu_cxx::__normal_iterator.57"* %this, %"class.__gnu_cxx::__normal_iterator.57"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator.57"** %this.addr
  %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.57"* %this1, i32 0, i32 0
  %0 = load %"struct.std::pair.56"** %_M_current, align 4
  ret %"struct.std::pair.56"* %0
}

define linkonce_odr void @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairIjS1_IN5boost6detail13out_edge_iterINS0_IPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESG_EES9_ISI_SaISI_EEEC1ERKSJ_(%"class.__gnu_cxx::__normal_iterator.57"* %this, %"struct.std::pair.56"** %__i) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator.57"*, align 4
  %__i.addr = alloca %"struct.std::pair.56"**, align 4
  store %"class.__gnu_cxx::__normal_iterator.57"* %this, %"class.__gnu_cxx::__normal_iterator.57"** %this.addr, align 4
  store %"struct.std::pair.56"** %__i, %"struct.std::pair.56"*** %__i.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator.57"** %this.addr
  %0 = load %"struct.std::pair.56"*** %__i.addr
  call void @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairIjS1_IN5boost6detail13out_edge_iterINS0_IPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESG_EES9_ISI_SaISI_EEEC2ERKSJ_(%"class.__gnu_cxx::__normal_iterator.57"* %this1, %"struct.std::pair.56"** %0)
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairIjS1_IN5boost6detail13out_edge_iterINS0_IPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESG_EES9_ISI_SaISI_EEEC2ERKSJ_(%"class.__gnu_cxx::__normal_iterator.57"* %this, %"struct.std::pair.56"** %__i) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator.57"*, align 4
  %__i.addr = alloca %"struct.std::pair.56"**, align 4
  store %"class.__gnu_cxx::__normal_iterator.57"* %this, %"class.__gnu_cxx::__normal_iterator.57"** %this.addr, align 4
  store %"struct.std::pair.56"** %__i, %"struct.std::pair.56"*** %__i.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator.57"** %this.addr
  %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.57"* %this1, i32 0, i32 0
  %0 = load %"struct.std::pair.56"*** %__i.addr, align 4
  %1 = load %"struct.std::pair.56"** %0, align 4
  store %"struct.std::pair.56"* %1, %"struct.std::pair.56"** %_M_current, align 4
  ret void
}

define linkonce_odr zeroext i1 @_ZN9__gnu_cxxeqIPKSt4pairIjS1_IN5boost6detail13out_edge_iterINS_17__normal_iteratorIPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESH_EESA_ISJ_SaISJ_EEEEbRKNS5_IT_T0_EESS_(%"class.__gnu_cxx::__normal_iterator.58"* %__lhs, %"class.__gnu_cxx::__normal_iterator.58"* %__rhs) inlinehint {
entry:
  %__lhs.addr = alloca %"class.__gnu_cxx::__normal_iterator.58"*, align 4
  %__rhs.addr = alloca %"class.__gnu_cxx::__normal_iterator.58"*, align 4
  store %"class.__gnu_cxx::__normal_iterator.58"* %__lhs, %"class.__gnu_cxx::__normal_iterator.58"** %__lhs.addr, align 4
  store %"class.__gnu_cxx::__normal_iterator.58"* %__rhs, %"class.__gnu_cxx::__normal_iterator.58"** %__rhs.addr, align 4
  %0 = load %"class.__gnu_cxx::__normal_iterator.58"** %__lhs.addr, align 4
  %call = call %"struct.std::pair.56"** @_ZNK9__gnu_cxx17__normal_iteratorIPKSt4pairIjS1_IN5boost6detail13out_edge_iterINS0_IPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESG_EES9_ISI_SaISI_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.58"* %0)
  %1 = load %"struct.std::pair.56"** %call
  %2 = load %"class.__gnu_cxx::__normal_iterator.58"** %__rhs.addr, align 4
  %call1 = call %"struct.std::pair.56"** @_ZNK9__gnu_cxx17__normal_iteratorIPKSt4pairIjS1_IN5boost6detail13out_edge_iterINS0_IPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESG_EES9_ISI_SaISI_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.58"* %2)
  %3 = load %"struct.std::pair.56"** %call1
  %cmp = icmp eq %"struct.std::pair.56"* %1, %3
  ret i1 %cmp
}

define linkonce_odr void @_ZNKSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE5beginEv(%"class.__gnu_cxx::__normal_iterator.58"* noalias sret %agg.result, %"class.std::vector.51"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.51"*, align 4
  %ref.tmp = alloca %"struct.std::pair.56"*, align 4
  store %"class.std::vector.51"* %this, %"class.std::vector.51"** %this.addr, align 4
  %this1 = load %"class.std::vector.51"** %this.addr
  %0 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.52"* %0, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %1 = load %"struct.std::pair.56"** %_M_start, align 4
  store %"struct.std::pair.56"* %1, %"struct.std::pair.56"** %ref.tmp, align 4
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairIjS1_IN5boost6detail13out_edge_iterINS0_IPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESG_EES9_ISI_SaISI_EEEC1ERKSK_(%"class.__gnu_cxx::__normal_iterator.58"* %agg.result, %"struct.std::pair.56"** %ref.tmp)
  ret void
}

define linkonce_odr void @_ZNKSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE3endEv(%"class.__gnu_cxx::__normal_iterator.58"* noalias sret %agg.result, %"class.std::vector.51"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.51"*, align 4
  %ref.tmp = alloca %"struct.std::pair.56"*, align 4
  store %"class.std::vector.51"* %this, %"class.std::vector.51"** %this.addr, align 4
  %this1 = load %"class.std::vector.51"** %this.addr
  %0 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.52"* %0, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl, i32 0, i32 1
  %1 = load %"struct.std::pair.56"** %_M_finish, align 4
  store %"struct.std::pair.56"* %1, %"struct.std::pair.56"** %ref.tmp, align 4
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairIjS1_IN5boost6detail13out_edge_iterINS0_IPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESG_EES9_ISI_SaISI_EEEC1ERKSK_(%"class.__gnu_cxx::__normal_iterator.58"* %agg.result, %"struct.std::pair.56"** %ref.tmp)
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairIjS1_IN5boost6detail13out_edge_iterINS0_IPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESG_EES9_ISI_SaISI_EEEC1ERKSK_(%"class.__gnu_cxx::__normal_iterator.58"* %this, %"struct.std::pair.56"** %__i) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator.58"*, align 4
  %__i.addr = alloca %"struct.std::pair.56"**, align 4
  store %"class.__gnu_cxx::__normal_iterator.58"* %this, %"class.__gnu_cxx::__normal_iterator.58"** %this.addr, align 4
  store %"struct.std::pair.56"** %__i, %"struct.std::pair.56"*** %__i.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator.58"** %this.addr
  %0 = load %"struct.std::pair.56"*** %__i.addr
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairIjS1_IN5boost6detail13out_edge_iterINS0_IPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESG_EES9_ISI_SaISI_EEEC2ERKSK_(%"class.__gnu_cxx::__normal_iterator.58"* %this1, %"struct.std::pair.56"** %0)
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairIjS1_IN5boost6detail13out_edge_iterINS0_IPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESG_EES9_ISI_SaISI_EEEC2ERKSK_(%"class.__gnu_cxx::__normal_iterator.58"* %this, %"struct.std::pair.56"** %__i) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator.58"*, align 4
  %__i.addr = alloca %"struct.std::pair.56"**, align 4
  store %"class.__gnu_cxx::__normal_iterator.58"* %this, %"class.__gnu_cxx::__normal_iterator.58"** %this.addr, align 4
  store %"struct.std::pair.56"** %__i, %"struct.std::pair.56"*** %__i.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator.58"** %this.addr
  %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.58"* %this1, i32 0, i32 0
  %0 = load %"struct.std::pair.56"*** %__i.addr, align 4
  %1 = load %"struct.std::pair.56"** %0, align 4
  store %"struct.std::pair.56"* %1, %"struct.std::pair.56"** %_M_current, align 4
  ret void
}

define linkonce_odr %"struct.std::pair.56"** @_ZNK9__gnu_cxx17__normal_iteratorIPKSt4pairIjS1_IN5boost6detail13out_edge_iterINS0_IPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESG_EES9_ISI_SaISI_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.58"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator.58"*, align 4
  store %"class.__gnu_cxx::__normal_iterator.58"* %this, %"class.__gnu_cxx::__normal_iterator.58"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator.58"** %this.addr
  %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.58"* %this1, i32 0, i32 0
  ret %"struct.std::pair.56"** %_M_current
}

define linkonce_odr void @_ZNSt4pairIjS_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS0_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEESG_EEC1ERKjRKSH_(%"struct.std::pair.56"* %this, i32* %__a, %"struct.std::pair.37"* %__b) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.56"*, align 4
  %__a.addr = alloca i32*, align 4
  %__b.addr = alloca %"struct.std::pair.37"*, align 4
  store %"struct.std::pair.56"* %this, %"struct.std::pair.56"** %this.addr, align 4
  store i32* %__a, i32** %__a.addr, align 4
  store %"struct.std::pair.37"* %__b, %"struct.std::pair.37"** %__b.addr, align 4
  %this1 = load %"struct.std::pair.56"** %this.addr
  %0 = load i32** %__a.addr
  %1 = load %"struct.std::pair.37"** %__b.addr
  call void @_ZNSt4pairIjS_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS0_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEESG_EEC2ERKjRKSH_(%"struct.std::pair.56"* %this1, i32* %0, %"struct.std::pair.37"* %1)
  ret void
}

define linkonce_odr void @_ZNSt4pairIjS_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS0_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEESG_EEC2ERKjRKSH_(%"struct.std::pair.56"* %this, i32* %__a, %"struct.std::pair.37"* %__b) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.56"*, align 4
  %__a.addr = alloca i32*, align 4
  %__b.addr = alloca %"struct.std::pair.37"*, align 4
  store %"struct.std::pair.56"* %this, %"struct.std::pair.56"** %this.addr, align 4
  store i32* %__a, i32** %__a.addr, align 4
  store %"struct.std::pair.37"* %__b, %"struct.std::pair.37"** %__b.addr, align 4
  %this1 = load %"struct.std::pair.56"** %this.addr
  %first = getelementptr inbounds %"struct.std::pair.56"* %this1, i32 0, i32 0
  %0 = load i32** %__a.addr, align 4
  %1 = load i32* %0, align 4
  store i32 %1, i32* %first, align 4
  %second = getelementptr inbounds %"struct.std::pair.56"* %this1, i32 0, i32 1
  %2 = load %"struct.std::pair.37"** %__b.addr, align 4
  %3 = bitcast %"struct.std::pair.37"* %second to i8*
  %4 = bitcast %"struct.std::pair.37"* %2 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %3, i8* %4, i32 16, i32 4, i1 false)
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorISt4pairIjS1_IN5boost6detail13out_edge_iterINS_17__normal_iteratorIPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESH_EEE9constructEPSJ_RKSJ_(%"class.__gnu_cxx::new_allocator.54"* %this, %"struct.std::pair.56"* %__p, %"struct.std::pair.56"* %__val) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.54"*, align 4
  %__p.addr = alloca %"struct.std::pair.56"*, align 4
  %__val.addr = alloca %"struct.std::pair.56"*, align 4
  store %"class.__gnu_cxx::new_allocator.54"* %this, %"class.__gnu_cxx::new_allocator.54"** %this.addr, align 4
  store %"struct.std::pair.56"* %__p, %"struct.std::pair.56"** %__p.addr, align 4
  store %"struct.std::pair.56"* %__val, %"struct.std::pair.56"** %__val.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.54"** %this.addr
  %0 = load %"struct.std::pair.56"** %__p.addr, align 4
  %1 = bitcast %"struct.std::pair.56"* %0 to i8*
  %new.isnull = icmp eq i8* %1, null
  br i1 %new.isnull, label %new.cont, label %new.notnull

new.notnull:                                      ; preds = %entry
  %2 = bitcast i8* %1 to %"struct.std::pair.56"*
  %3 = load %"struct.std::pair.56"** %__val.addr, align 4
  %4 = bitcast %"struct.std::pair.56"* %2 to i8*
  %5 = bitcast %"struct.std::pair.56"* %3 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %4, i8* %5, i32 20, i32 4, i1 false)
  br label %new.cont

new.cont:                                         ; preds = %new.notnull, %entry
  %6 = phi %"struct.std::pair.56"* [ %2, %new.notnull ], [ null, %entry ]
  ret void
}

define linkonce_odr void @_ZNSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE13_M_insert_auxENS5_IPSI_SK_EERKSI_(%"class.std::vector.51"* %this, %"class.__gnu_cxx::__normal_iterator.57"* byval align 4 %__position, %"struct.std::pair.56"* %__x) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.51"*, align 4
  %__x.addr = alloca %"struct.std::pair.56"*, align 4
  %__x_copy = alloca %"struct.std::pair.56", align 4
  %__len = alloca i32, align 4
  %__elems_before = alloca i32, align 4
  %ref.tmp = alloca %"class.__gnu_cxx::__normal_iterator.57", align 4
  %__new_start = alloca %"struct.std::pair.56"*, align 4
  %__new_finish = alloca %"struct.std::pair.56"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::vector.51"* %this, %"class.std::vector.51"** %this.addr, align 4
  store %"struct.std::pair.56"* %__x, %"struct.std::pair.56"** %__x.addr, align 4
  %this1 = load %"class.std::vector.51"** %this.addr
  %0 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.52"* %0, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl, i32 0, i32 1
  %1 = load %"struct.std::pair.56"** %_M_finish, align 4
  %2 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base.52"* %2, i32 0, i32 0
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl2, i32 0, i32 2
  %3 = load %"struct.std::pair.56"** %_M_end_of_storage, align 4
  %cmp = icmp ne %"struct.std::pair.56"* %1, %3
  br i1 %cmp, label %if.then, label %if.else

if.then:                                          ; preds = %entry
  %4 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl3 = getelementptr inbounds %"struct.std::_Vector_base.52"* %4, i32 0, i32 0
  %5 = bitcast %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl3 to %"class.__gnu_cxx::new_allocator.54"*
  %6 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl4 = getelementptr inbounds %"struct.std::_Vector_base.52"* %6, i32 0, i32 0
  %_M_finish5 = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl4, i32 0, i32 1
  %7 = load %"struct.std::pair.56"** %_M_finish5, align 4
  %8 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl6 = getelementptr inbounds %"struct.std::_Vector_base.52"* %8, i32 0, i32 0
  %_M_finish7 = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl6, i32 0, i32 1
  %9 = load %"struct.std::pair.56"** %_M_finish7, align 4
  %add.ptr = getelementptr inbounds %"struct.std::pair.56"* %9, i32 -1
  call void @_ZN9__gnu_cxx13new_allocatorISt4pairIjS1_IN5boost6detail13out_edge_iterINS_17__normal_iteratorIPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESH_EEE9constructEPSJ_RKSJ_(%"class.__gnu_cxx::new_allocator.54"* %5, %"struct.std::pair.56"* %7, %"struct.std::pair.56"* %add.ptr)
  %10 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl8 = getelementptr inbounds %"struct.std::_Vector_base.52"* %10, i32 0, i32 0
  %_M_finish9 = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl8, i32 0, i32 1
  %11 = load %"struct.std::pair.56"** %_M_finish9, align 4
  %incdec.ptr = getelementptr inbounds %"struct.std::pair.56"* %11, i32 1
  store %"struct.std::pair.56"* %incdec.ptr, %"struct.std::pair.56"** %_M_finish9, align 4
  %12 = load %"struct.std::pair.56"** %__x.addr, align 4
  %13 = bitcast %"struct.std::pair.56"* %__x_copy to i8*
  %14 = bitcast %"struct.std::pair.56"* %12 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %13, i8* %14, i32 20, i32 4, i1 false)
  %call = call %"struct.std::pair.56"** @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIjS1_IN5boost6detail13out_edge_iterINS0_IPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESG_EES9_ISI_SaISI_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.57"* %__position)
  %15 = load %"struct.std::pair.56"** %call
  %16 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl10 = getelementptr inbounds %"struct.std::_Vector_base.52"* %16, i32 0, i32 0
  %_M_finish11 = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl10, i32 0, i32 1
  %17 = load %"struct.std::pair.56"** %_M_finish11, align 4
  %add.ptr12 = getelementptr inbounds %"struct.std::pair.56"* %17, i32 -2
  %18 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl13 = getelementptr inbounds %"struct.std::_Vector_base.52"* %18, i32 0, i32 0
  %_M_finish14 = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl13, i32 0, i32 1
  %19 = load %"struct.std::pair.56"** %_M_finish14, align 4
  %add.ptr15 = getelementptr inbounds %"struct.std::pair.56"* %19, i32 -1
  %call16 = call %"struct.std::pair.56"* @_ZSt13copy_backwardIPSt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESK_ET0_T_SM_SL_(%"struct.std::pair.56"* %15, %"struct.std::pair.56"* %add.ptr12, %"struct.std::pair.56"* %add.ptr15)
  %call17 = call %"struct.std::pair.56"* @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIjS1_IN5boost6detail13out_edge_iterINS0_IPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESG_EES9_ISI_SaISI_EEEdeEv(%"class.__gnu_cxx::__normal_iterator.57"* %__position)
  %20 = bitcast %"struct.std::pair.56"* %call17 to i8*
  %21 = bitcast %"struct.std::pair.56"* %__x_copy to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %20, i8* %21, i32 20, i32 4, i1 false)
  br label %if.end68

if.else:                                          ; preds = %entry
  %call18 = call i32 @_ZNKSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE12_M_check_lenEjPKc(%"class.std::vector.51"* %this1, i32 1, i8* getelementptr inbounds ([22 x i8]* @.str15, i32 0, i32 0))
  store i32 %call18, i32* %__len, align 4
  call void @_ZNSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE5beginEv(%"class.__gnu_cxx::__normal_iterator.57"* sret %ref.tmp, %"class.std::vector.51"* %this1)
  %call19 = call i32 @_ZN9__gnu_cxxmiIPSt4pairIjS1_IN5boost6detail13out_edge_iterINS_17__normal_iteratorIPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESH_EESA_ISJ_SaISJ_EEEENS5_IT_T0_E15difference_typeERKSP_SS_(%"class.__gnu_cxx::__normal_iterator.57"* %__position, %"class.__gnu_cxx::__normal_iterator.57"* %ref.tmp)
  store i32 %call19, i32* %__elems_before, align 4
  %22 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %23 = load i32* %__len, align 4
  %call20 = call %"struct.std::pair.56"* @_ZNSt12_Vector_baseISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESaISJ_EE11_M_allocateEj(%"struct.std::_Vector_base.52"* %22, i32 %23)
  store %"struct.std::pair.56"* %call20, %"struct.std::pair.56"** %__new_start, align 4
  %24 = load %"struct.std::pair.56"** %__new_start, align 4
  store %"struct.std::pair.56"* %24, %"struct.std::pair.56"** %__new_finish, align 4
  %25 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl21 = getelementptr inbounds %"struct.std::_Vector_base.52"* %25, i32 0, i32 0
  %26 = bitcast %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl21 to %"class.__gnu_cxx::new_allocator.54"*
  %27 = load %"struct.std::pair.56"** %__new_start, align 4
  %28 = load i32* %__elems_before, align 4
  %add.ptr22 = getelementptr inbounds %"struct.std::pair.56"* %27, i32 %28
  %29 = load %"struct.std::pair.56"** %__x.addr, align 4
  invoke void @_ZN9__gnu_cxx13new_allocatorISt4pairIjS1_IN5boost6detail13out_edge_iterINS_17__normal_iteratorIPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESH_EEE9constructEPSJ_RKSJ_(%"class.__gnu_cxx::new_allocator.54"* %26, %"struct.std::pair.56"* %add.ptr22, %"struct.std::pair.56"* %29)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %if.else
  store %"struct.std::pair.56"* null, %"struct.std::pair.56"** %__new_finish, align 4
  %30 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl23 = getelementptr inbounds %"struct.std::_Vector_base.52"* %30, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl23, i32 0, i32 0
  %31 = load %"struct.std::pair.56"** %_M_start, align 4
  %call25 = invoke %"struct.std::pair.56"** @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIjS1_IN5boost6detail13out_edge_iterINS0_IPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESG_EES9_ISI_SaISI_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.57"* %__position)
          to label %invoke.cont24 unwind label %lpad

invoke.cont24:                                    ; preds = %invoke.cont
  %32 = load %"struct.std::pair.56"** %call25
  %33 = load %"struct.std::pair.56"** %__new_start, align 4
  %34 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %call27 = invoke %"class.std::allocator.53"* @_ZNSt12_Vector_baseISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESaISJ_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.52"* %34)
          to label %invoke.cont26 unwind label %lpad

invoke.cont26:                                    ; preds = %invoke.cont24
  %call29 = invoke %"struct.std::pair.56"* @_ZSt22__uninitialized_move_aIPSt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESK_SaISJ_EET0_T_SN_SM_RT1_(%"struct.std::pair.56"* %31, %"struct.std::pair.56"* %32, %"struct.std::pair.56"* %33, %"class.std::allocator.53"* %call27)
          to label %invoke.cont28 unwind label %lpad

invoke.cont28:                                    ; preds = %invoke.cont26
  store %"struct.std::pair.56"* %call29, %"struct.std::pair.56"** %__new_finish, align 4
  %35 = load %"struct.std::pair.56"** %__new_finish, align 4
  %incdec.ptr30 = getelementptr inbounds %"struct.std::pair.56"* %35, i32 1
  store %"struct.std::pair.56"* %incdec.ptr30, %"struct.std::pair.56"** %__new_finish, align 4
  %call32 = invoke %"struct.std::pair.56"** @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIjS1_IN5boost6detail13out_edge_iterINS0_IPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESG_EES9_ISI_SaISI_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.57"* %__position)
          to label %invoke.cont31 unwind label %lpad

invoke.cont31:                                    ; preds = %invoke.cont28
  %36 = load %"struct.std::pair.56"** %call32
  %37 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl33 = getelementptr inbounds %"struct.std::_Vector_base.52"* %37, i32 0, i32 0
  %_M_finish34 = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl33, i32 0, i32 1
  %38 = load %"struct.std::pair.56"** %_M_finish34, align 4
  %39 = load %"struct.std::pair.56"** %__new_finish, align 4
  %40 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %call36 = invoke %"class.std::allocator.53"* @_ZNSt12_Vector_baseISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESaISJ_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.52"* %40)
          to label %invoke.cont35 unwind label %lpad

invoke.cont35:                                    ; preds = %invoke.cont31
  %call38 = invoke %"struct.std::pair.56"* @_ZSt22__uninitialized_move_aIPSt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESK_SaISJ_EET0_T_SN_SM_RT1_(%"struct.std::pair.56"* %36, %"struct.std::pair.56"* %38, %"struct.std::pair.56"* %39, %"class.std::allocator.53"* %call36)
          to label %invoke.cont37 unwind label %lpad

invoke.cont37:                                    ; preds = %invoke.cont35
  store %"struct.std::pair.56"* %call38, %"struct.std::pair.56"** %__new_finish, align 4
  br label %try.cont

lpad:                                             ; preds = %invoke.cont35, %invoke.cont31, %invoke.cont28, %invoke.cont26, %invoke.cont24, %invoke.cont, %if.else
  %41 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  %42 = extractvalue { i8*, i32 } %41, 0
  store i8* %42, i8** %exn.slot
  %43 = extractvalue { i8*, i32 } %41, 1
  store i32 %43, i32* %ehselector.slot
  br label %catch

catch:                                            ; preds = %lpad
  %exn = load i8** %exn.slot
  %44 = call i8* @__cxa_begin_catch(i8* %exn) nounwind
  %45 = load %"struct.std::pair.56"** %__new_finish, align 4
  %tobool = icmp ne %"struct.std::pair.56"* %45, null
  br i1 %tobool, label %if.else44, label %if.then39

if.then39:                                        ; preds = %catch
  %46 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl40 = getelementptr inbounds %"struct.std::_Vector_base.52"* %46, i32 0, i32 0
  %47 = bitcast %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl40 to %"class.__gnu_cxx::new_allocator.54"*
  %48 = load %"struct.std::pair.56"** %__new_start, align 4
  %49 = load i32* %__elems_before, align 4
  %add.ptr41 = getelementptr inbounds %"struct.std::pair.56"* %48, i32 %49
  invoke void @_ZN9__gnu_cxx13new_allocatorISt4pairIjS1_IN5boost6detail13out_edge_iterINS_17__normal_iteratorIPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESH_EEE7destroyEPSJ_(%"class.__gnu_cxx::new_allocator.54"* %47, %"struct.std::pair.56"* %add.ptr41)
          to label %invoke.cont43 unwind label %lpad42

invoke.cont43:                                    ; preds = %if.then39
  br label %if.end

lpad42:                                           ; preds = %invoke.cont48, %if.end, %invoke.cont45, %if.else44, %if.then39
  %50 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %51 = extractvalue { i8*, i32 } %50, 0
  store i8* %51, i8** %exn.slot
  %52 = extractvalue { i8*, i32 } %50, 1
  store i32 %52, i32* %ehselector.slot
  invoke void @__cxa_end_catch()
          to label %invoke.cont49 unwind label %terminate.lpad

if.else44:                                        ; preds = %catch
  %53 = load %"struct.std::pair.56"** %__new_start, align 4
  %54 = load %"struct.std::pair.56"** %__new_finish, align 4
  %55 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %call46 = invoke %"class.std::allocator.53"* @_ZNSt12_Vector_baseISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESaISJ_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.52"* %55)
          to label %invoke.cont45 unwind label %lpad42

invoke.cont45:                                    ; preds = %if.else44
  invoke void @_ZSt8_DestroyIPSt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESJ_EvT_SL_RSaIT0_E(%"struct.std::pair.56"* %53, %"struct.std::pair.56"* %54, %"class.std::allocator.53"* %call46)
          to label %invoke.cont47 unwind label %lpad42

invoke.cont47:                                    ; preds = %invoke.cont45
  br label %if.end

if.end:                                           ; preds = %invoke.cont47, %invoke.cont43
  %56 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %57 = load %"struct.std::pair.56"** %__new_start, align 4
  %58 = load i32* %__len, align 4
  invoke void @_ZNSt12_Vector_baseISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESaISJ_EE13_M_deallocateEPSJ_j(%"struct.std::_Vector_base.52"* %56, %"struct.std::pair.56"* %57, i32 %58)
          to label %invoke.cont48 unwind label %lpad42

invoke.cont48:                                    ; preds = %if.end
  invoke void @__cxa_rethrow() noreturn
          to label %unreachable unwind label %lpad42

invoke.cont49:                                    ; preds = %lpad42
  br label %eh.resume

try.cont:                                         ; preds = %invoke.cont37
  %59 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl50 = getelementptr inbounds %"struct.std::_Vector_base.52"* %59, i32 0, i32 0
  %_M_start51 = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl50, i32 0, i32 0
  %60 = load %"struct.std::pair.56"** %_M_start51, align 4
  %61 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl52 = getelementptr inbounds %"struct.std::_Vector_base.52"* %61, i32 0, i32 0
  %_M_finish53 = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl52, i32 0, i32 1
  %62 = load %"struct.std::pair.56"** %_M_finish53, align 4
  %63 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %call54 = call %"class.std::allocator.53"* @_ZNSt12_Vector_baseISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESaISJ_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.52"* %63)
  call void @_ZSt8_DestroyIPSt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESJ_EvT_SL_RSaIT0_E(%"struct.std::pair.56"* %60, %"struct.std::pair.56"* %62, %"class.std::allocator.53"* %call54)
  %64 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %65 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl55 = getelementptr inbounds %"struct.std::_Vector_base.52"* %65, i32 0, i32 0
  %_M_start56 = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl55, i32 0, i32 0
  %66 = load %"struct.std::pair.56"** %_M_start56, align 4
  %67 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl57 = getelementptr inbounds %"struct.std::_Vector_base.52"* %67, i32 0, i32 0
  %_M_end_of_storage58 = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl57, i32 0, i32 2
  %68 = load %"struct.std::pair.56"** %_M_end_of_storage58, align 4
  %69 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl59 = getelementptr inbounds %"struct.std::_Vector_base.52"* %69, i32 0, i32 0
  %_M_start60 = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl59, i32 0, i32 0
  %70 = load %"struct.std::pair.56"** %_M_start60, align 4
  %sub.ptr.lhs.cast = ptrtoint %"struct.std::pair.56"* %68 to i32
  %sub.ptr.rhs.cast = ptrtoint %"struct.std::pair.56"* %70 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 20
  call void @_ZNSt12_Vector_baseISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESaISJ_EE13_M_deallocateEPSJ_j(%"struct.std::_Vector_base.52"* %64, %"struct.std::pair.56"* %66, i32 %sub.ptr.div)
  %71 = load %"struct.std::pair.56"** %__new_start, align 4
  %72 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl61 = getelementptr inbounds %"struct.std::_Vector_base.52"* %72, i32 0, i32 0
  %_M_start62 = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl61, i32 0, i32 0
  store %"struct.std::pair.56"* %71, %"struct.std::pair.56"** %_M_start62, align 4
  %73 = load %"struct.std::pair.56"** %__new_finish, align 4
  %74 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl63 = getelementptr inbounds %"struct.std::_Vector_base.52"* %74, i32 0, i32 0
  %_M_finish64 = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl63, i32 0, i32 1
  store %"struct.std::pair.56"* %73, %"struct.std::pair.56"** %_M_finish64, align 4
  %75 = load %"struct.std::pair.56"** %__new_start, align 4
  %76 = load i32* %__len, align 4
  %add.ptr65 = getelementptr inbounds %"struct.std::pair.56"* %75, i32 %76
  %77 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl66 = getelementptr inbounds %"struct.std::_Vector_base.52"* %77, i32 0, i32 0
  %_M_end_of_storage67 = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl66, i32 0, i32 2
  store %"struct.std::pair.56"* %add.ptr65, %"struct.std::pair.56"** %_M_end_of_storage67, align 4
  br label %if.end68

if.end68:                                         ; preds = %try.cont, %if.then
  ret void

eh.resume:                                        ; preds = %invoke.cont49
  %exn69 = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn69, 0
  %lpad.val70 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val70

terminate.lpad:                                   ; preds = %lpad42
  %78 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable

unreachable:                                      ; preds = %invoke.cont48
  unreachable
}

define linkonce_odr %"struct.std::pair.56"* @_ZSt13copy_backwardIPSt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESK_ET0_T_SM_SL_(%"struct.std::pair.56"* %__first, %"struct.std::pair.56"* %__last, %"struct.std::pair.56"* %__result) inlinehint {
entry:
  %__first.addr = alloca %"struct.std::pair.56"*, align 4
  %__last.addr = alloca %"struct.std::pair.56"*, align 4
  %__result.addr = alloca %"struct.std::pair.56"*, align 4
  store %"struct.std::pair.56"* %__first, %"struct.std::pair.56"** %__first.addr, align 4
  store %"struct.std::pair.56"* %__last, %"struct.std::pair.56"** %__last.addr, align 4
  store %"struct.std::pair.56"* %__result, %"struct.std::pair.56"** %__result.addr, align 4
  %0 = load %"struct.std::pair.56"** %__first.addr, align 4
  %call = call %"struct.std::pair.56"* @_ZSt12__miter_baseIPSt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EEENSt11_Miter_baseIT_E13iterator_typeESM_(%"struct.std::pair.56"* %0)
  %1 = load %"struct.std::pair.56"** %__last.addr, align 4
  %call1 = call %"struct.std::pair.56"* @_ZSt12__miter_baseIPSt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EEENSt11_Miter_baseIT_E13iterator_typeESM_(%"struct.std::pair.56"* %1)
  %2 = load %"struct.std::pair.56"** %__result.addr, align 4
  %call2 = call %"struct.std::pair.56"* @_ZSt23__copy_move_backward_a2ILb0EPSt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESK_ET1_T0_SM_SL_(%"struct.std::pair.56"* %call, %"struct.std::pair.56"* %call1, %"struct.std::pair.56"* %2)
  ret %"struct.std::pair.56"* %call2
}

define linkonce_odr %"struct.std::pair.56"** @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIjS1_IN5boost6detail13out_edge_iterINS0_IPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESG_EES9_ISI_SaISI_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.57"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator.57"*, align 4
  store %"class.__gnu_cxx::__normal_iterator.57"* %this, %"class.__gnu_cxx::__normal_iterator.57"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator.57"** %this.addr
  %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.57"* %this1, i32 0, i32 0
  ret %"struct.std::pair.56"** %_M_current
}

define linkonce_odr i32 @_ZNKSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE12_M_check_lenEjPKc(%"class.std::vector.51"* %this, i32 %__n, i8* %__s) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.51"*, align 4
  %__n.addr = alloca i32, align 4
  %__s.addr = alloca i8*, align 4
  %__len = alloca i32, align 4
  %ref.tmp = alloca i32, align 4
  store %"class.std::vector.51"* %this, %"class.std::vector.51"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i8* %__s, i8** %__s.addr, align 4
  %this1 = load %"class.std::vector.51"** %this.addr
  %call = call i32 @_ZNKSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE8max_sizeEv(%"class.std::vector.51"* %this1)
  %call2 = call i32 @_ZNKSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE4sizeEv(%"class.std::vector.51"* %this1)
  %sub = sub i32 %call, %call2
  %0 = load i32* %__n.addr, align 4
  %cmp = icmp ult i32 %sub, %0
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %1 = load i8** %__s.addr, align 4
  call void @_ZSt20__throw_length_errorPKc(i8* %1) noreturn
  unreachable

if.end:                                           ; preds = %entry
  %call3 = call i32 @_ZNKSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE4sizeEv(%"class.std::vector.51"* %this1)
  %call4 = call i32 @_ZNKSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE4sizeEv(%"class.std::vector.51"* %this1)
  store i32 %call4, i32* %ref.tmp, align 4
  %call5 = call i32* @_ZSt3maxIjERKT_S2_S2_(i32* %ref.tmp, i32* %__n.addr)
  %2 = load i32* %call5
  %add = add i32 %call3, %2
  store i32 %add, i32* %__len, align 4
  %3 = load i32* %__len, align 4
  %call6 = call i32 @_ZNKSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE4sizeEv(%"class.std::vector.51"* %this1)
  %cmp7 = icmp ult i32 %3, %call6
  br i1 %cmp7, label %cond.true, label %lor.lhs.false

lor.lhs.false:                                    ; preds = %if.end
  %4 = load i32* %__len, align 4
  %call8 = call i32 @_ZNKSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE8max_sizeEv(%"class.std::vector.51"* %this1)
  %cmp9 = icmp ugt i32 %4, %call8
  br i1 %cmp9, label %cond.true, label %cond.false

cond.true:                                        ; preds = %lor.lhs.false, %if.end
  %call10 = call i32 @_ZNKSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE8max_sizeEv(%"class.std::vector.51"* %this1)
  br label %cond.end

cond.false:                                       ; preds = %lor.lhs.false
  %5 = load i32* %__len, align 4
  br label %cond.end

cond.end:                                         ; preds = %cond.false, %cond.true
  %cond = phi i32 [ %call10, %cond.true ], [ %5, %cond.false ]
  ret i32 %cond
}

define linkonce_odr i32 @_ZN9__gnu_cxxmiIPSt4pairIjS1_IN5boost6detail13out_edge_iterINS_17__normal_iteratorIPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESH_EESA_ISJ_SaISJ_EEEENS5_IT_T0_E15difference_typeERKSP_SS_(%"class.__gnu_cxx::__normal_iterator.57"* %__lhs, %"class.__gnu_cxx::__normal_iterator.57"* %__rhs) inlinehint {
entry:
  %__lhs.addr = alloca %"class.__gnu_cxx::__normal_iterator.57"*, align 4
  %__rhs.addr = alloca %"class.__gnu_cxx::__normal_iterator.57"*, align 4
  store %"class.__gnu_cxx::__normal_iterator.57"* %__lhs, %"class.__gnu_cxx::__normal_iterator.57"** %__lhs.addr, align 4
  store %"class.__gnu_cxx::__normal_iterator.57"* %__rhs, %"class.__gnu_cxx::__normal_iterator.57"** %__rhs.addr, align 4
  %0 = load %"class.__gnu_cxx::__normal_iterator.57"** %__lhs.addr, align 4
  %call = call %"struct.std::pair.56"** @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIjS1_IN5boost6detail13out_edge_iterINS0_IPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESG_EES9_ISI_SaISI_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.57"* %0)
  %1 = load %"struct.std::pair.56"** %call
  %2 = load %"class.__gnu_cxx::__normal_iterator.57"** %__rhs.addr, align 4
  %call1 = call %"struct.std::pair.56"** @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIjS1_IN5boost6detail13out_edge_iterINS0_IPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESG_EES9_ISI_SaISI_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.57"* %2)
  %3 = load %"struct.std::pair.56"** %call1
  %sub.ptr.lhs.cast = ptrtoint %"struct.std::pair.56"* %1 to i32
  %sub.ptr.rhs.cast = ptrtoint %"struct.std::pair.56"* %3 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 20
  ret i32 %sub.ptr.div
}

define linkonce_odr void @_ZNSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE5beginEv(%"class.__gnu_cxx::__normal_iterator.57"* noalias sret %agg.result, %"class.std::vector.51"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.51"*, align 4
  store %"class.std::vector.51"* %this, %"class.std::vector.51"** %this.addr, align 4
  %this1 = load %"class.std::vector.51"** %this.addr
  %0 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.52"* %0, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl, i32 0, i32 0
  call void @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairIjS1_IN5boost6detail13out_edge_iterINS0_IPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESG_EES9_ISI_SaISI_EEEC1ERKSJ_(%"class.__gnu_cxx::__normal_iterator.57"* %agg.result, %"struct.std::pair.56"** %_M_start)
  ret void
}

define linkonce_odr %"struct.std::pair.56"* @_ZNSt12_Vector_baseISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESaISJ_EE11_M_allocateEj(%"struct.std::_Vector_base.52"* %this, i32 %__n) align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base.52"*, align 4
  %__n.addr = alloca i32, align 4
  store %"struct.std::_Vector_base.52"* %this, %"struct.std::_Vector_base.52"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  %this1 = load %"struct.std::_Vector_base.52"** %this.addr
  %0 = load i32* %__n.addr, align 4
  %cmp = icmp ne i32 %0, 0
  br i1 %cmp, label %cond.true, label %cond.false

cond.true:                                        ; preds = %entry
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.52"* %this1, i32 0, i32 0
  %1 = bitcast %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl to %"class.__gnu_cxx::new_allocator.54"*
  %2 = load i32* %__n.addr, align 4
  %call = call %"struct.std::pair.56"* @_ZN9__gnu_cxx13new_allocatorISt4pairIjS1_IN5boost6detail13out_edge_iterINS_17__normal_iteratorIPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESH_EEE8allocateEjPKv(%"class.__gnu_cxx::new_allocator.54"* %1, i32 %2, i8* null)
  br label %cond.end

cond.false:                                       ; preds = %entry
  br label %cond.end

cond.end:                                         ; preds = %cond.false, %cond.true
  %cond = phi %"struct.std::pair.56"* [ %call, %cond.true ], [ null, %cond.false ]
  ret %"struct.std::pair.56"* %cond
}

define linkonce_odr %"struct.std::pair.56"* @_ZSt22__uninitialized_move_aIPSt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESK_SaISJ_EET0_T_SN_SM_RT1_(%"struct.std::pair.56"* %__first, %"struct.std::pair.56"* %__last, %"struct.std::pair.56"* %__result, %"class.std::allocator.53"* %__alloc) inlinehint {
entry:
  %__first.addr = alloca %"struct.std::pair.56"*, align 4
  %__last.addr = alloca %"struct.std::pair.56"*, align 4
  %__result.addr = alloca %"struct.std::pair.56"*, align 4
  %__alloc.addr = alloca %"class.std::allocator.53"*, align 4
  store %"struct.std::pair.56"* %__first, %"struct.std::pair.56"** %__first.addr, align 4
  store %"struct.std::pair.56"* %__last, %"struct.std::pair.56"** %__last.addr, align 4
  store %"struct.std::pair.56"* %__result, %"struct.std::pair.56"** %__result.addr, align 4
  store %"class.std::allocator.53"* %__alloc, %"class.std::allocator.53"** %__alloc.addr, align 4
  %0 = load %"struct.std::pair.56"** %__first.addr, align 4
  %1 = load %"struct.std::pair.56"** %__last.addr, align 4
  %2 = load %"struct.std::pair.56"** %__result.addr, align 4
  %3 = load %"class.std::allocator.53"** %__alloc.addr, align 4
  %call = call %"struct.std::pair.56"* @_ZSt22__uninitialized_copy_aIPSt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESK_SJ_ET0_T_SM_SL_RSaIT1_E(%"struct.std::pair.56"* %0, %"struct.std::pair.56"* %1, %"struct.std::pair.56"* %2, %"class.std::allocator.53"* %3)
  ret %"struct.std::pair.56"* %call
}

define linkonce_odr %"struct.std::pair.56"* @_ZSt22__uninitialized_copy_aIPSt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESK_SJ_ET0_T_SM_SL_RSaIT1_E(%"struct.std::pair.56"* %__first, %"struct.std::pair.56"* %__last, %"struct.std::pair.56"* %__result, %"class.std::allocator.53"*) inlinehint {
entry:
  %__first.addr = alloca %"struct.std::pair.56"*, align 4
  %__last.addr = alloca %"struct.std::pair.56"*, align 4
  %__result.addr = alloca %"struct.std::pair.56"*, align 4
  %.addr = alloca %"class.std::allocator.53"*, align 4
  store %"struct.std::pair.56"* %__first, %"struct.std::pair.56"** %__first.addr, align 4
  store %"struct.std::pair.56"* %__last, %"struct.std::pair.56"** %__last.addr, align 4
  store %"struct.std::pair.56"* %__result, %"struct.std::pair.56"** %__result.addr, align 4
  store %"class.std::allocator.53"* %0, %"class.std::allocator.53"** %.addr, align 4
  %1 = load %"struct.std::pair.56"** %__first.addr, align 4
  %2 = load %"struct.std::pair.56"** %__last.addr, align 4
  %3 = load %"struct.std::pair.56"** %__result.addr, align 4
  %call = call %"struct.std::pair.56"* @_ZSt18uninitialized_copyIPSt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESK_ET0_T_SM_SL_(%"struct.std::pair.56"* %1, %"struct.std::pair.56"* %2, %"struct.std::pair.56"* %3)
  ret %"struct.std::pair.56"* %call
}

define linkonce_odr %"struct.std::pair.56"* @_ZSt18uninitialized_copyIPSt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESK_ET0_T_SM_SL_(%"struct.std::pair.56"* %__first, %"struct.std::pair.56"* %__last, %"struct.std::pair.56"* %__result) inlinehint {
entry:
  %__first.addr = alloca %"struct.std::pair.56"*, align 4
  %__last.addr = alloca %"struct.std::pair.56"*, align 4
  %__result.addr = alloca %"struct.std::pair.56"*, align 4
  store %"struct.std::pair.56"* %__first, %"struct.std::pair.56"** %__first.addr, align 4
  store %"struct.std::pair.56"* %__last, %"struct.std::pair.56"** %__last.addr, align 4
  store %"struct.std::pair.56"* %__result, %"struct.std::pair.56"** %__result.addr, align 4
  %0 = load %"struct.std::pair.56"** %__first.addr, align 4
  %1 = load %"struct.std::pair.56"** %__last.addr, align 4
  %2 = load %"struct.std::pair.56"** %__result.addr, align 4
  %call = call %"struct.std::pair.56"* @_ZNSt20__uninitialized_copyILb0EE13__uninit_copyIPSt4pairIjS2_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS4_20stored_edge_propertyIjNS3_11no_propertyEEESt6vectorISA_SaISA_EEEEjNS4_14edge_desc_implINS3_12directed_tagEjEEiEESJ_EESM_EET0_T_SO_SN_(%"struct.std::pair.56"* %0, %"struct.std::pair.56"* %1, %"struct.std::pair.56"* %2)
  ret %"struct.std::pair.56"* %call
}

define linkonce_odr %"struct.std::pair.56"* @_ZNSt20__uninitialized_copyILb0EE13__uninit_copyIPSt4pairIjS2_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS4_20stored_edge_propertyIjNS3_11no_propertyEEESt6vectorISA_SaISA_EEEEjNS4_14edge_desc_implINS3_12directed_tagEjEEiEESJ_EESM_EET0_T_SO_SN_(%"struct.std::pair.56"* %__first, %"struct.std::pair.56"* %__last, %"struct.std::pair.56"* %__result) align 2 {
entry:
  %__first.addr = alloca %"struct.std::pair.56"*, align 4
  %__last.addr = alloca %"struct.std::pair.56"*, align 4
  %__result.addr = alloca %"struct.std::pair.56"*, align 4
  %__cur = alloca %"struct.std::pair.56"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.std::pair.56"* %__first, %"struct.std::pair.56"** %__first.addr, align 4
  store %"struct.std::pair.56"* %__last, %"struct.std::pair.56"** %__last.addr, align 4
  store %"struct.std::pair.56"* %__result, %"struct.std::pair.56"** %__result.addr, align 4
  %0 = load %"struct.std::pair.56"** %__result.addr, align 4
  store %"struct.std::pair.56"* %0, %"struct.std::pair.56"** %__cur, align 4
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %1 = load %"struct.std::pair.56"** %__first.addr, align 4
  %2 = load %"struct.std::pair.56"** %__last.addr, align 4
  %cmp = icmp ne %"struct.std::pair.56"* %1, %2
  br i1 %cmp, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %3 = load %"struct.std::pair.56"** %__cur, align 4
  %call = invoke %"struct.std::pair.56"* @_ZSt11__addressofISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EEEPT_RSK_(%"struct.std::pair.56"* %3)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %for.body
  %4 = load %"struct.std::pair.56"** %__first.addr, align 4
  invoke void @_ZSt10_ConstructISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESJ_EvPT_RKT0_(%"struct.std::pair.56"* %call, %"struct.std::pair.56"* %4)
          to label %invoke.cont1 unwind label %lpad

invoke.cont1:                                     ; preds = %invoke.cont
  br label %for.inc

for.inc:                                          ; preds = %invoke.cont1
  %5 = load %"struct.std::pair.56"** %__first.addr, align 4
  %incdec.ptr = getelementptr inbounds %"struct.std::pair.56"* %5, i32 1
  store %"struct.std::pair.56"* %incdec.ptr, %"struct.std::pair.56"** %__first.addr, align 4
  %6 = load %"struct.std::pair.56"** %__cur, align 4
  %incdec.ptr2 = getelementptr inbounds %"struct.std::pair.56"* %6, i32 1
  store %"struct.std::pair.56"* %incdec.ptr2, %"struct.std::pair.56"** %__cur, align 4
  br label %for.cond

lpad:                                             ; preds = %invoke.cont, %for.body
  %7 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  %8 = extractvalue { i8*, i32 } %7, 0
  store i8* %8, i8** %exn.slot
  %9 = extractvalue { i8*, i32 } %7, 1
  store i32 %9, i32* %ehselector.slot
  br label %catch

catch:                                            ; preds = %lpad
  %exn = load i8** %exn.slot
  %10 = call i8* @__cxa_begin_catch(i8* %exn) nounwind
  %11 = load %"struct.std::pair.56"** %__result.addr, align 4
  %12 = load %"struct.std::pair.56"** %__cur, align 4
  invoke void @_ZSt8_DestroyIPSt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EEEvT_SL_(%"struct.std::pair.56"* %11, %"struct.std::pair.56"* %12)
          to label %invoke.cont4 unwind label %lpad3

invoke.cont4:                                     ; preds = %catch
  invoke void @__cxa_rethrow() noreturn
          to label %unreachable unwind label %lpad3

for.end:                                          ; preds = %for.cond
  %13 = load %"struct.std::pair.56"** %__cur, align 4
  ret %"struct.std::pair.56"* %13

lpad3:                                            ; preds = %invoke.cont4, %catch
  %14 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %15 = extractvalue { i8*, i32 } %14, 0
  store i8* %15, i8** %exn.slot
  %16 = extractvalue { i8*, i32 } %14, 1
  store i32 %16, i32* %ehselector.slot
  invoke void @__cxa_end_catch()
          to label %invoke.cont5 unwind label %terminate.lpad

invoke.cont5:                                     ; preds = %lpad3
  br label %eh.resume

try.cont:                                         ; No predecessors!
  call void @llvm.trap()
  unreachable

eh.resume:                                        ; preds = %invoke.cont5
  %exn6 = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn6, 0
  %lpad.val7 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val7

terminate.lpad:                                   ; preds = %lpad3
  %17 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable

unreachable:                                      ; preds = %invoke.cont4
  unreachable
}

define linkonce_odr void @_ZSt10_ConstructISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESJ_EvPT_RKT0_(%"struct.std::pair.56"* %__p, %"struct.std::pair.56"* %__value) nounwind inlinehint {
entry:
  %__p.addr = alloca %"struct.std::pair.56"*, align 4
  %__value.addr = alloca %"struct.std::pair.56"*, align 4
  store %"struct.std::pair.56"* %__p, %"struct.std::pair.56"** %__p.addr, align 4
  store %"struct.std::pair.56"* %__value, %"struct.std::pair.56"** %__value.addr, align 4
  %0 = load %"struct.std::pair.56"** %__p.addr, align 4
  %1 = bitcast %"struct.std::pair.56"* %0 to i8*
  %new.isnull = icmp eq i8* %1, null
  br i1 %new.isnull, label %new.cont, label %new.notnull

new.notnull:                                      ; preds = %entry
  %2 = bitcast i8* %1 to %"struct.std::pair.56"*
  %3 = load %"struct.std::pair.56"** %__value.addr, align 4
  %4 = bitcast %"struct.std::pair.56"* %2 to i8*
  %5 = bitcast %"struct.std::pair.56"* %3 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %4, i8* %5, i32 20, i32 4, i1 false)
  br label %new.cont

new.cont:                                         ; preds = %new.notnull, %entry
  %6 = phi %"struct.std::pair.56"* [ %2, %new.notnull ], [ null, %entry ]
  ret void
}

define linkonce_odr %"struct.std::pair.56"* @_ZSt11__addressofISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EEEPT_RSK_(%"struct.std::pair.56"* %__r) nounwind inlinehint {
entry:
  %__r.addr = alloca %"struct.std::pair.56"*, align 4
  store %"struct.std::pair.56"* %__r, %"struct.std::pair.56"** %__r.addr, align 4
  %0 = load %"struct.std::pair.56"** %__r.addr, align 4
  %1 = bitcast %"struct.std::pair.56"* %0 to i8*
  %2 = bitcast i8* %1 to %"struct.std::pair.56"*
  ret %"struct.std::pair.56"* %2
}

declare void @llvm.trap() noreturn nounwind

define linkonce_odr %"struct.std::pair.56"* @_ZN9__gnu_cxx13new_allocatorISt4pairIjS1_IN5boost6detail13out_edge_iterINS_17__normal_iteratorIPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESH_EEE8allocateEjPKv(%"class.__gnu_cxx::new_allocator.54"* %this, i32 %__n, i8*) align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.54"*, align 4
  %__n.addr = alloca i32, align 4
  %.addr = alloca i8*, align 4
  store %"class.__gnu_cxx::new_allocator.54"* %this, %"class.__gnu_cxx::new_allocator.54"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i8* %0, i8** %.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.54"** %this.addr
  %1 = load i32* %__n.addr, align 4
  %call = call i32 @_ZNK9__gnu_cxx13new_allocatorISt4pairIjS1_IN5boost6detail13out_edge_iterINS_17__normal_iteratorIPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESH_EEE8max_sizeEv(%"class.__gnu_cxx::new_allocator.54"* %this1) nounwind
  %cmp = icmp ugt i32 %1, %call
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  call void @_ZSt17__throw_bad_allocv() noreturn
  unreachable

if.end:                                           ; preds = %entry
  %2 = load i32* %__n.addr, align 4
  %mul = mul i32 %2, 20
  %call2 = call noalias i8* @_Znwj(i32 %mul)
  %3 = bitcast i8* %call2 to %"struct.std::pair.56"*
  ret %"struct.std::pair.56"* %3
}

define linkonce_odr i32 @_ZNK9__gnu_cxx13new_allocatorISt4pairIjS1_IN5boost6detail13out_edge_iterINS_17__normal_iteratorIPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESH_EEE8max_sizeEv(%"class.__gnu_cxx::new_allocator.54"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.54"*, align 4
  store %"class.__gnu_cxx::new_allocator.54"* %this, %"class.__gnu_cxx::new_allocator.54"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.54"** %this.addr
  ret i32 214748364
}

define linkonce_odr i32 @_ZNKSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE8max_sizeEv(%"class.std::vector.51"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.51"*, align 4
  store %"class.std::vector.51"* %this, %"class.std::vector.51"** %this.addr, align 4
  %this1 = load %"class.std::vector.51"** %this.addr
  %0 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %call = call %"class.std::allocator.53"* @_ZNKSt12_Vector_baseISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESaISJ_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.52"* %0)
  %1 = bitcast %"class.std::allocator.53"* %call to %"class.__gnu_cxx::new_allocator.54"*
  %call2 = call i32 @_ZNK9__gnu_cxx13new_allocatorISt4pairIjS1_IN5boost6detail13out_edge_iterINS_17__normal_iteratorIPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESH_EEE8max_sizeEv(%"class.__gnu_cxx::new_allocator.54"* %1) nounwind
  ret i32 %call2
}

define linkonce_odr i32 @_ZNKSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EE4sizeEv(%"class.std::vector.51"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::vector.51"*, align 4
  store %"class.std::vector.51"* %this, %"class.std::vector.51"** %this.addr, align 4
  %this1 = load %"class.std::vector.51"** %this.addr
  %0 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.52"* %0, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl, i32 0, i32 1
  %1 = load %"struct.std::pair.56"** %_M_finish, align 4
  %2 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base.52"* %2, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl2, i32 0, i32 0
  %3 = load %"struct.std::pair.56"** %_M_start, align 4
  %sub.ptr.lhs.cast = ptrtoint %"struct.std::pair.56"* %1 to i32
  %sub.ptr.rhs.cast = ptrtoint %"struct.std::pair.56"* %3 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 20
  ret i32 %sub.ptr.div
}

declare void @_ZSt20__throw_length_errorPKc(i8*) noreturn

define linkonce_odr %"class.std::allocator.53"* @_ZNKSt12_Vector_baseISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESaISJ_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.52"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base.52"*, align 4
  store %"struct.std::_Vector_base.52"* %this, %"struct.std::_Vector_base.52"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base.52"** %this.addr
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.52"* %this1, i32 0, i32 0
  %0 = bitcast %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl to %"class.std::allocator.53"*
  ret %"class.std::allocator.53"* %0
}

define linkonce_odr %"struct.std::pair.56"* @_ZSt23__copy_move_backward_a2ILb0EPSt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESK_ET1_T0_SM_SL_(%"struct.std::pair.56"* %__first, %"struct.std::pair.56"* %__last, %"struct.std::pair.56"* %__result) inlinehint {
entry:
  %__first.addr = alloca %"struct.std::pair.56"*, align 4
  %__last.addr = alloca %"struct.std::pair.56"*, align 4
  %__result.addr = alloca %"struct.std::pair.56"*, align 4
  store %"struct.std::pair.56"* %__first, %"struct.std::pair.56"** %__first.addr, align 4
  store %"struct.std::pair.56"* %__last, %"struct.std::pair.56"** %__last.addr, align 4
  store %"struct.std::pair.56"* %__result, %"struct.std::pair.56"** %__result.addr, align 4
  %0 = load %"struct.std::pair.56"** %__first.addr, align 4
  %call = call %"struct.std::pair.56"* @_ZSt12__niter_baseIPSt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EEENSt11_Niter_baseIT_E13iterator_typeESM_(%"struct.std::pair.56"* %0)
  %1 = load %"struct.std::pair.56"** %__last.addr, align 4
  %call1 = call %"struct.std::pair.56"* @_ZSt12__niter_baseIPSt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EEENSt11_Niter_baseIT_E13iterator_typeESM_(%"struct.std::pair.56"* %1)
  %2 = load %"struct.std::pair.56"** %__result.addr, align 4
  %call2 = call %"struct.std::pair.56"* @_ZSt12__niter_baseIPSt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EEENSt11_Niter_baseIT_E13iterator_typeESM_(%"struct.std::pair.56"* %2)
  %call3 = call %"struct.std::pair.56"* @_ZSt22__copy_move_backward_aILb0EPSt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESK_ET1_T0_SM_SL_(%"struct.std::pair.56"* %call, %"struct.std::pair.56"* %call1, %"struct.std::pair.56"* %call2)
  ret %"struct.std::pair.56"* %call3
}

define linkonce_odr %"struct.std::pair.56"* @_ZSt12__miter_baseIPSt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EEENSt11_Miter_baseIT_E13iterator_typeESM_(%"struct.std::pair.56"* %__it) inlinehint {
entry:
  %__it.addr = alloca %"struct.std::pair.56"*, align 4
  store %"struct.std::pair.56"* %__it, %"struct.std::pair.56"** %__it.addr, align 4
  %0 = load %"struct.std::pair.56"** %__it.addr, align 4
  %call = call %"struct.std::pair.56"* @_ZNSt10_Iter_baseIPSt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EELb0EE7_S_baseESK_(%"struct.std::pair.56"* %0)
  ret %"struct.std::pair.56"* %call
}

define linkonce_odr %"struct.std::pair.56"* @_ZNSt10_Iter_baseIPSt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EELb0EE7_S_baseESK_(%"struct.std::pair.56"* %__it) nounwind align 2 {
entry:
  %__it.addr = alloca %"struct.std::pair.56"*, align 4
  store %"struct.std::pair.56"* %__it, %"struct.std::pair.56"** %__it.addr, align 4
  %0 = load %"struct.std::pair.56"** %__it.addr, align 4
  ret %"struct.std::pair.56"* %0
}

define linkonce_odr %"struct.std::pair.56"* @_ZSt22__copy_move_backward_aILb0EPSt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESK_ET1_T0_SM_SL_(%"struct.std::pair.56"* %__first, %"struct.std::pair.56"* %__last, %"struct.std::pair.56"* %__result) inlinehint {
entry:
  %__first.addr = alloca %"struct.std::pair.56"*, align 4
  %__last.addr = alloca %"struct.std::pair.56"*, align 4
  %__result.addr = alloca %"struct.std::pair.56"*, align 4
  %__simple = alloca i8, align 1
  store %"struct.std::pair.56"* %__first, %"struct.std::pair.56"** %__first.addr, align 4
  store %"struct.std::pair.56"* %__last, %"struct.std::pair.56"** %__last.addr, align 4
  store %"struct.std::pair.56"* %__result, %"struct.std::pair.56"** %__result.addr, align 4
  store i8 0, i8* %__simple, align 1
  %0 = load %"struct.std::pair.56"** %__first.addr, align 4
  %1 = load %"struct.std::pair.56"** %__last.addr, align 4
  %2 = load %"struct.std::pair.56"** %__result.addr, align 4
  %call = call %"struct.std::pair.56"* @_ZNSt20__copy_move_backwardILb0ELb0ESt26random_access_iterator_tagE13__copy_move_bIPSt4pairIjS3_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS5_20stored_edge_propertyIjNS4_11no_propertyEEESt6vectorISB_SaISB_EEEEjNS5_14edge_desc_implINS4_12directed_tagEjEEiEESK_EESN_EET0_T_SP_SO_(%"struct.std::pair.56"* %0, %"struct.std::pair.56"* %1, %"struct.std::pair.56"* %2)
  ret %"struct.std::pair.56"* %call
}

define linkonce_odr %"struct.std::pair.56"* @_ZSt12__niter_baseIPSt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EEENSt11_Niter_baseIT_E13iterator_typeESM_(%"struct.std::pair.56"* %__it) nounwind inlinehint {
entry:
  %__it.addr = alloca %"struct.std::pair.56"*, align 4
  store %"struct.std::pair.56"* %__it, %"struct.std::pair.56"** %__it.addr, align 4
  %0 = load %"struct.std::pair.56"** %__it.addr, align 4
  %call = call %"struct.std::pair.56"* @_ZNSt10_Iter_baseIPSt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EELb0EE7_S_baseESK_(%"struct.std::pair.56"* %0)
  ret %"struct.std::pair.56"* %call
}

define linkonce_odr %"struct.std::pair.56"* @_ZNSt20__copy_move_backwardILb0ELb0ESt26random_access_iterator_tagE13__copy_move_bIPSt4pairIjS3_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS5_20stored_edge_propertyIjNS4_11no_propertyEEESt6vectorISB_SaISB_EEEEjNS5_14edge_desc_implINS4_12directed_tagEjEEiEESK_EESN_EET0_T_SP_SO_(%"struct.std::pair.56"* %__first, %"struct.std::pair.56"* %__last, %"struct.std::pair.56"* %__result) nounwind align 2 {
entry:
  %__first.addr = alloca %"struct.std::pair.56"*, align 4
  %__last.addr = alloca %"struct.std::pair.56"*, align 4
  %__result.addr = alloca %"struct.std::pair.56"*, align 4
  %__n = alloca i32, align 4
  store %"struct.std::pair.56"* %__first, %"struct.std::pair.56"** %__first.addr, align 4
  store %"struct.std::pair.56"* %__last, %"struct.std::pair.56"** %__last.addr, align 4
  store %"struct.std::pair.56"* %__result, %"struct.std::pair.56"** %__result.addr, align 4
  %0 = load %"struct.std::pair.56"** %__last.addr, align 4
  %1 = load %"struct.std::pair.56"** %__first.addr, align 4
  %sub.ptr.lhs.cast = ptrtoint %"struct.std::pair.56"* %0 to i32
  %sub.ptr.rhs.cast = ptrtoint %"struct.std::pair.56"* %1 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 20
  store i32 %sub.ptr.div, i32* %__n, align 4
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %2 = load i32* %__n, align 4
  %cmp = icmp sgt i32 %2, 0
  br i1 %cmp, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %3 = load %"struct.std::pair.56"** %__result.addr, align 4
  %incdec.ptr = getelementptr inbounds %"struct.std::pair.56"* %3, i32 -1
  store %"struct.std::pair.56"* %incdec.ptr, %"struct.std::pair.56"** %__result.addr, align 4
  %4 = load %"struct.std::pair.56"** %__last.addr, align 4
  %incdec.ptr1 = getelementptr inbounds %"struct.std::pair.56"* %4, i32 -1
  store %"struct.std::pair.56"* %incdec.ptr1, %"struct.std::pair.56"** %__last.addr, align 4
  %5 = bitcast %"struct.std::pair.56"* %incdec.ptr to i8*
  %6 = bitcast %"struct.std::pair.56"* %incdec.ptr1 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %5, i8* %6, i32 20, i32 4, i1 false)
  br label %for.inc

for.inc:                                          ; preds = %for.body
  %7 = load i32* %__n, align 4
  %dec = add nsw i32 %7, -1
  store i32 %dec, i32* %__n, align 4
  br label %for.cond

for.end:                                          ; preds = %for.cond
  %8 = load %"struct.std::pair.56"** %__result.addr, align 4
  ret %"struct.std::pair.56"* %8
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEESt4pairIS1_INS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEEEjKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEENS_18on_discover_vertexEEEvRS4_IT_T0_ET1_RT2_T3_(%"struct.std::pair.8"* %vlist, i32 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %vlist.addr = alloca %"struct.std::pair.8"*, align 4
  %x.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tag = alloca %"struct.boost::on_discover_vertex", align 1
  %agg.tmp = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  %agg.tmp1 = alloca %"struct.boost::on_discover_vertex", align 1
  store %"struct.std::pair.8"* %vlist, %"struct.std::pair.8"** %vlist.addr, align 4
  store i32 %x, i32* %x.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %0 = load %"struct.std::pair.8"** %vlist.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.8"* %0, i32 0, i32 0
  %1 = load i32* %x.addr, align 4
  %2 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %3 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_tree_edgeEEjKNS_14adjacency_listINS_4vecSES6_NS_9directedSENS_11no_propertyES8_S8_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer* %first, i32 %1, %"class.boost::adjacency_list"* %2)
  %4 = load %"struct.std::pair.8"** %vlist.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.8"* %4, i32 0, i32 1
  %5 = load i32* %x.addr, align 4
  %6 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEEjKNS_14adjacency_listINS_4vecSES7_NS_9directedSENS_11no_propertyES9_S9_NS_5listSEEENS_18on_discover_vertexEEEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.12"* %second, i32 %5, %"class.boost::adjacency_list"* %6)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEEjKNS_14adjacency_listINS_4vecSES7_NS_9directedSENS_11no_propertyES9_S9_NS_5listSEEENS_18on_discover_vertexEEEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.12"* %vlist, i32 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %vlist.addr = alloca %"struct.std::pair.12"*, align 4
  %x.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tag = alloca %"struct.boost::on_discover_vertex", align 1
  %agg.tmp = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  %agg.tmp1 = alloca %"struct.boost::on_discover_vertex", align 1
  store %"struct.std::pair.12"* %vlist, %"struct.std::pair.12"** %vlist.addr, align 4
  store i32 %x, i32* %x.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %0 = load %"struct.std::pair.12"** %vlist.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.12"* %0, i32 0, i32 0
  %1 = load i32* %x.addr, align 4
  %2 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %3 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_back_edgeEEjKNS_14adjacency_listINS_4vecSES6_NS_9directedSENS_11no_propertyES8_S8_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer.13* %first, i32 %1, %"class.boost::adjacency_list"* %2)
  %4 = load %"struct.std::pair.12"** %vlist.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.12"* %4, i32 0, i32 1
  %5 = load i32* %x.addr, align 4
  %6 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_24on_forward_or_cross_edgeEEjKNS_14adjacency_listINS_4vecSES5_NS_9directedSENS_11no_propertyES7_S7_NS_5listSEEENS_18on_discover_vertexEEEvRT_T0_RT1_T2_(%struct.edge_printer.15* %second, i32 %5, %"class.boost::adjacency_list"* %6)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_24on_forward_or_cross_edgeEEjKNS_14adjacency_listINS_4vecSES5_NS_9directedSENS_11no_propertyES7_S7_NS_5listSEEENS_18on_discover_vertexEEEvRT_T0_RT1_T2_(%struct.edge_printer.15* %v, i32 %x, %"class.boost::adjacency_list"* %g) nounwind inlinehint {
entry:
  %v.addr = alloca %struct.edge_printer.15*, align 4
  %x.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %0 = alloca %"struct.boost::on_discover_vertex", align 1
  %agg.tmp = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  store %struct.edge_printer.15* %v, %struct.edge_printer.15** %v.addr, align 4
  store i32 %x, i32* %x.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %struct.edge_printer.15** %v.addr, align 4
  %2 = load i32* %x.addr, align 4
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_24on_forward_or_cross_edgeEEjKNS_14adjacency_listINS_4vecSES6_NS_9directedSENS_11no_propertyES8_S8_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer.15* %1, i32 %2, %"class.boost::adjacency_list"* %3)
  ret void
}

define linkonce_odr void @_ZNSt6vectorISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEES_IS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESG_EESaISI_EEC2Ev(%"class.std::vector.51"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector.51"*, align 4
  store %"class.std::vector.51"* %this, %"class.std::vector.51"** %this.addr, align 4
  %this1 = load %"class.std::vector.51"** %this.addr
  %0 = bitcast %"class.std::vector.51"* %this1 to %"struct.std::_Vector_base.52"*
  call void @_ZNSt12_Vector_baseISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESaISJ_EEC2Ev(%"struct.std::_Vector_base.52"* %0)
  ret void
}

define linkonce_odr void @_ZNSt12_Vector_baseISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESaISJ_EEC2Ev(%"struct.std::_Vector_base.52"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base.52"*, align 4
  store %"struct.std::_Vector_base.52"* %this, %"struct.std::_Vector_base.52"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base.52"** %this.addr
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.52"* %this1, i32 0, i32 0
  call void @_ZNSt12_Vector_baseISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESaISJ_EE12_Vector_implC1Ev(%"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %_M_impl)
  ret void
}

define linkonce_odr void @_ZNSt12_Vector_baseISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESaISJ_EE12_Vector_implC1Ev(%"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"*, align 4
  store %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %this, %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"** %this.addr
  call void @_ZNSt12_Vector_baseISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESaISJ_EE12_Vector_implC2Ev(%"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %this1)
  ret void
}

define linkonce_odr void @_ZNSt12_Vector_baseISt4pairIjS0_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS2_20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS2_14edge_desc_implINS1_12directed_tagEjEEiEESH_EESaISJ_EE12_Vector_implC2Ev(%"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"*, align 4
  store %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %this, %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"** %this.addr
  %0 = bitcast %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %this1 to %"class.std::allocator.53"*
  call void @_ZNSaISt4pairIjS_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS0_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEESG_EEEC2Ev(%"class.std::allocator.53"* %0) nounwind
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %this1, i32 0, i32 0
  store %"struct.std::pair.56"* null, %"struct.std::pair.56"** %_M_start, align 4
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %this1, i32 0, i32 1
  store %"struct.std::pair.56"* null, %"struct.std::pair.56"** %_M_finish, align 4
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > >, std::allocator<std::pair<unsigned int, std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<unsigned int, boost::no_property> *, std::vector<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > > >, unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, unsigned int>, int> > > > >::_Vector_impl"* %this1, i32 0, i32 2
  store %"struct.std::pair.56"* null, %"struct.std::pair.56"** %_M_end_of_storage, align 4
  ret void
}

define linkonce_odr void @_ZNSaISt4pairIjS_IN5boost6detail13out_edge_iterIN9__gnu_cxx17__normal_iteratorIPNS1_20stored_edge_propertyIjNS0_11no_propertyEEESt6vectorIS7_SaIS7_EEEEjNS1_14edge_desc_implINS0_12directed_tagEjEEiEESG_EEEC2Ev(%"class.std::allocator.53"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.53"*, align 4
  store %"class.std::allocator.53"* %this, %"class.std::allocator.53"** %this.addr, align 4
  %this1 = load %"class.std::allocator.53"** %this.addr
  %0 = bitcast %"class.std::allocator.53"* %this1 to %"class.__gnu_cxx::new_allocator.54"*
  call void @_ZN9__gnu_cxx13new_allocatorISt4pairIjS1_IN5boost6detail13out_edge_iterINS_17__normal_iteratorIPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESH_EEEC2Ev(%"class.__gnu_cxx::new_allocator.54"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorISt4pairIjS1_IN5boost6detail13out_edge_iterINS_17__normal_iteratorIPNS3_20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS8_SaIS8_EEEEjNS3_14edge_desc_implINS2_12directed_tagEjEEiEESH_EEEC2Ev(%"class.__gnu_cxx::new_allocator.54"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.54"*, align 4
  store %"class.__gnu_cxx::new_allocator.54"* %this, %"class.__gnu_cxx::new_allocator.54"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.54"** %this.addr
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEESt4pairIS1_INS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEEEjKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEENS_15on_start_vertexEEEvRS4_IT_T0_ET1_RT2_T3_(%"struct.std::pair.8"* %vlist, i32 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %vlist.addr = alloca %"struct.std::pair.8"*, align 4
  %x.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tag = alloca %"struct.boost::on_start_vertex", align 1
  %agg.tmp = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  %agg.tmp1 = alloca %"struct.boost::on_start_vertex", align 1
  store %"struct.std::pair.8"* %vlist, %"struct.std::pair.8"** %vlist.addr, align 4
  store i32 %x, i32* %x.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %0 = load %"struct.std::pair.8"** %vlist.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.8"* %0, i32 0, i32 0
  %1 = load i32* %x.addr, align 4
  %2 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %3 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_tree_edgeEEjKNS_14adjacency_listINS_4vecSES6_NS_9directedSENS_11no_propertyES8_S8_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer* %first, i32 %1, %"class.boost::adjacency_list"* %2)
  %4 = load %"struct.std::pair.8"** %vlist.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.8"* %4, i32 0, i32 1
  %5 = load i32* %x.addr, align 4
  %6 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEEjKNS_14adjacency_listINS_4vecSES7_NS_9directedSENS_11no_propertyES9_S9_NS_5listSEEENS_15on_start_vertexEEEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.12"* %second, i32 %5, %"class.boost::adjacency_list"* %6)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEEjKNS_14adjacency_listINS_4vecSES7_NS_9directedSENS_11no_propertyES9_S9_NS_5listSEEENS_15on_start_vertexEEEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.12"* %vlist, i32 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %vlist.addr = alloca %"struct.std::pair.12"*, align 4
  %x.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tag = alloca %"struct.boost::on_start_vertex", align 1
  %agg.tmp = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  %agg.tmp1 = alloca %"struct.boost::on_start_vertex", align 1
  store %"struct.std::pair.12"* %vlist, %"struct.std::pair.12"** %vlist.addr, align 4
  store i32 %x, i32* %x.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %0 = load %"struct.std::pair.12"** %vlist.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.12"* %0, i32 0, i32 0
  %1 = load i32* %x.addr, align 4
  %2 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %3 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_back_edgeEEjKNS_14adjacency_listINS_4vecSES6_NS_9directedSENS_11no_propertyES8_S8_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer.13* %first, i32 %1, %"class.boost::adjacency_list"* %2)
  %4 = load %"struct.std::pair.12"** %vlist.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.12"* %4, i32 0, i32 1
  %5 = load i32* %x.addr, align 4
  %6 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_24on_forward_or_cross_edgeEEjKNS_14adjacency_listINS_4vecSES5_NS_9directedSENS_11no_propertyES7_S7_NS_5listSEEENS_15on_start_vertexEEEvRT_T0_RT1_T2_(%struct.edge_printer.15* %second, i32 %5, %"class.boost::adjacency_list"* %6)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_24on_forward_or_cross_edgeEEjKNS_14adjacency_listINS_4vecSES5_NS_9directedSENS_11no_propertyES7_S7_NS_5listSEEENS_15on_start_vertexEEEvRT_T0_RT1_T2_(%struct.edge_printer.15* %v, i32 %x, %"class.boost::adjacency_list"* %g) nounwind inlinehint {
entry:
  %v.addr = alloca %struct.edge_printer.15*, align 4
  %x.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %0 = alloca %"struct.boost::on_start_vertex", align 1
  %agg.tmp = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  store %struct.edge_printer.15* %v, %struct.edge_printer.15** %v.addr, align 4
  store i32 %x, i32* %x.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %struct.edge_printer.15** %v.addr, align 4
  %2 = load i32* %x.addr, align 4
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_24on_forward_or_cross_edgeEEjKNS_14adjacency_listINS_4vecSES6_NS_9directedSENS_11no_propertyES8_S8_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer.15* %1, i32 %2, %"class.boost::adjacency_list"* %3)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_tree_edgeEESt4pairIS1_INS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEEEjKNS_14adjacency_listINS_4vecSESB_NS_9directedSENS_11no_propertyESD_SD_NS_5listSEEENS_20on_initialize_vertexEEEvRS4_IT_T0_ET1_RT2_T3_(%"struct.std::pair.8"* %vlist, i32 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %vlist.addr = alloca %"struct.std::pair.8"*, align 4
  %x.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tag = alloca %"struct.boost::on_initialize_vertex", align 1
  %agg.tmp = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  %agg.tmp1 = alloca %"struct.boost::on_initialize_vertex", align 1
  store %"struct.std::pair.8"* %vlist, %"struct.std::pair.8"** %vlist.addr, align 4
  store i32 %x, i32* %x.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %0 = load %"struct.std::pair.8"** %vlist.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.8"* %0, i32 0, i32 0
  %1 = load i32* %x.addr, align 4
  %2 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %3 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_tree_edgeEEjKNS_14adjacency_listINS_4vecSES6_NS_9directedSENS_11no_propertyES8_S8_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer* %first, i32 %1, %"class.boost::adjacency_list"* %2)
  %4 = load %"struct.std::pair.8"** %vlist.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.8"* %4, i32 0, i32 1
  %5 = load i32* %x.addr, align 4
  %6 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEEjKNS_14adjacency_listINS_4vecSES7_NS_9directedSENS_11no_propertyES9_S9_NS_5listSEEENS_20on_initialize_vertexEEEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.12"* %second, i32 %5, %"class.boost::adjacency_list"* %6)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_12on_back_edgeEES1_INS_24on_forward_or_cross_edgeEEjKNS_14adjacency_listINS_4vecSES7_NS_9directedSENS_11no_propertyES9_S9_NS_5listSEEENS_20on_initialize_vertexEEEvRSt4pairIT_T0_ET1_RT2_T3_(%"struct.std::pair.12"* %vlist, i32 %x, %"class.boost::adjacency_list"* %g) inlinehint {
entry:
  %vlist.addr = alloca %"struct.std::pair.12"*, align 4
  %x.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %tag = alloca %"struct.boost::on_initialize_vertex", align 1
  %agg.tmp = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  %agg.tmp1 = alloca %"struct.boost::on_initialize_vertex", align 1
  store %"struct.std::pair.12"* %vlist, %"struct.std::pair.12"** %vlist.addr, align 4
  store i32 %x, i32* %x.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %0 = load %"struct.std::pair.12"** %vlist.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.12"* %0, i32 0, i32 0
  %1 = load i32* %x.addr, align 4
  %2 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %3 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_12on_back_edgeEEjKNS_14adjacency_listINS_4vecSES6_NS_9directedSENS_11no_propertyES8_S8_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer.13* %first, i32 %1, %"class.boost::adjacency_list"* %2)
  %4 = load %"struct.std::pair.12"** %vlist.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.12"* %4, i32 0, i32 1
  %5 = load i32* %x.addr, align 4
  %6 = load %"class.boost::adjacency_list"** %g.addr, align 4
  call void @_ZN5boost15invoke_visitorsI12edge_printerINS_24on_forward_or_cross_edgeEEjKNS_14adjacency_listINS_4vecSES5_NS_9directedSENS_11no_propertyES7_S7_NS_5listSEEENS_20on_initialize_vertexEEEvRT_T0_RT1_T2_(%struct.edge_printer.15* %second, i32 %5, %"class.boost::adjacency_list"* %6)
  ret void
}

define linkonce_odr void @_ZN5boost15invoke_visitorsI12edge_printerINS_24on_forward_or_cross_edgeEEjKNS_14adjacency_listINS_4vecSES5_NS_9directedSENS_11no_propertyES7_S7_NS_5listSEEENS_20on_initialize_vertexEEEvRT_T0_RT1_T2_(%struct.edge_printer.15* %v, i32 %x, %"class.boost::adjacency_list"* %g) nounwind inlinehint {
entry:
  %v.addr = alloca %struct.edge_printer.15*, align 4
  %x.addr = alloca i32, align 4
  %g.addr = alloca %"class.boost::adjacency_list"*, align 4
  %0 = alloca %"struct.boost::on_initialize_vertex", align 1
  %agg.tmp = alloca %"struct.mpl_::bool_.38", align 1
  %ref.tmp = alloca %"struct.boost::integral_constant", align 1
  store %struct.edge_printer.15* %v, %struct.edge_printer.15** %v.addr, align 4
  store i32 %x, i32* %x.addr, align 4
  store %"class.boost::adjacency_list"* %g, %"class.boost::adjacency_list"** %g.addr, align 4
  %1 = load %struct.edge_printer.15** %v.addr, align 4
  %2 = load i32* %x.addr, align 4
  %3 = load %"class.boost::adjacency_list"** %g.addr, align 4
  %4 = bitcast %"struct.boost::integral_constant"* %ref.tmp to %"struct.mpl_::bool_.38"*
  call void @_ZN5boost6detail15invoke_dispatchI12edge_printerINS_24on_forward_or_cross_edgeEEjKNS_14adjacency_listINS_4vecSES6_NS_9directedSENS_11no_propertyES8_S8_NS_5listSEEEEEvRT_T0_RT1_N4mpl_5bool_ILb0EEE(%struct.edge_printer.15* %1, i32 %2, %"class.boost::adjacency_list"* %3)
  ret void
}

define linkonce_odr void @_ZN5boost9parameter3aux8arg_listINS1_15tagged_argumentINS_5graph8keywords3tag7visitorEKNS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES9_ISA_INS_12on_back_edgeEESA_INS_24on_forward_or_cross_edgeEEEEEEEENS1_14empty_arg_listEEC1ESL_RKSM_(%"struct.boost::parameter::aux::arg_list"* %this, %"struct.boost::parameter::aux::tagged_argument"* byval align 4 %head, %"struct.boost::parameter::aux::empty_arg_list"* %tail) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::parameter::aux::arg_list"*, align 4
  %tail.addr = alloca %"struct.boost::parameter::aux::empty_arg_list"*, align 4
  store %"struct.boost::parameter::aux::arg_list"* %this, %"struct.boost::parameter::aux::arg_list"** %this.addr, align 4
  store %"struct.boost::parameter::aux::empty_arg_list"* %tail, %"struct.boost::parameter::aux::empty_arg_list"** %tail.addr, align 4
  %this1 = load %"struct.boost::parameter::aux::arg_list"** %this.addr
  %0 = load %"struct.boost::parameter::aux::empty_arg_list"** %tail.addr
  call void @_ZN5boost9parameter3aux8arg_listINS1_15tagged_argumentINS_5graph8keywords3tag7visitorEKNS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES9_ISA_INS_12on_back_edgeEESA_INS_24on_forward_or_cross_edgeEEEEEEEENS1_14empty_arg_listEEC2ESL_RKSM_(%"struct.boost::parameter::aux::arg_list"* %this1, %"struct.boost::parameter::aux::tagged_argument"* byval align 4 %head, %"struct.boost::parameter::aux::empty_arg_list"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost9parameter3aux15tagged_argumentINS_5graph8keywords3tag7visitorEKNS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES8_IS9_INS_12on_back_edgeEES9_INS_24on_forward_or_cross_edgeEEEEEEEC1ERSJ_(%"struct.boost::parameter::aux::tagged_argument"* %this, %"class.boost::dfs_visitor"* %x) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::parameter::aux::tagged_argument"*, align 4
  %x.addr = alloca %"class.boost::dfs_visitor"*, align 4
  store %"struct.boost::parameter::aux::tagged_argument"* %this, %"struct.boost::parameter::aux::tagged_argument"** %this.addr, align 4
  store %"class.boost::dfs_visitor"* %x, %"class.boost::dfs_visitor"** %x.addr, align 4
  %this1 = load %"struct.boost::parameter::aux::tagged_argument"** %this.addr
  %0 = load %"class.boost::dfs_visitor"** %x.addr
  call void @_ZN5boost9parameter3aux15tagged_argumentINS_5graph8keywords3tag7visitorEKNS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES8_IS9_INS_12on_back_edgeEES9_INS_24on_forward_or_cross_edgeEEEEEEEC2ERSJ_(%"struct.boost::parameter::aux::tagged_argument"* %this1, %"class.boost::dfs_visitor"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost6detail37convert_bgl_params_to_boost_parameterINS_11no_propertyEE4convERKS2_(%"struct.boost::parameter::aux::empty_arg_list"* noalias sret %agg.result, %"struct.boost::no_property"*) align 2 {
entry:
  %.addr = alloca %"struct.boost::no_property"*, align 4
  store %"struct.boost::no_property"* %0, %"struct.boost::no_property"** %.addr, align 4
  call void @_ZN5boost9parameter3aux14empty_arg_listC1Ev(%"struct.boost::parameter::aux::empty_arg_list"* %agg.result)
  ret void
}

define linkonce_odr void @_ZN5boost9parameter3aux14empty_arg_listC1Ev(%"struct.boost::parameter::aux::empty_arg_list"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::parameter::aux::empty_arg_list"*, align 4
  store %"struct.boost::parameter::aux::empty_arg_list"* %this, %"struct.boost::parameter::aux::empty_arg_list"** %this.addr, align 4
  %this1 = load %"struct.boost::parameter::aux::empty_arg_list"** %this.addr
  call void @_ZN5boost9parameter3aux14empty_arg_listC2Ev(%"struct.boost::parameter::aux::empty_arg_list"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost9parameter3aux14empty_arg_listC2Ev(%"struct.boost::parameter::aux::empty_arg_list"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::parameter::aux::empty_arg_list"*, align 4
  store %"struct.boost::parameter::aux::empty_arg_list"* %this, %"struct.boost::parameter::aux::empty_arg_list"** %this.addr, align 4
  %this1 = load %"struct.boost::parameter::aux::empty_arg_list"** %this.addr
  ret void
}

define linkonce_odr void @_ZN5boost9parameter3aux15tagged_argumentINS_5graph8keywords3tag7visitorEKNS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES8_IS9_INS_12on_back_edgeEES9_INS_24on_forward_or_cross_edgeEEEEEEEC2ERSJ_(%"struct.boost::parameter::aux::tagged_argument"* %this, %"class.boost::dfs_visitor"* %x) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::parameter::aux::tagged_argument"*, align 4
  %x.addr = alloca %"class.boost::dfs_visitor"*, align 4
  store %"struct.boost::parameter::aux::tagged_argument"* %this, %"struct.boost::parameter::aux::tagged_argument"** %this.addr, align 4
  store %"class.boost::dfs_visitor"* %x, %"class.boost::dfs_visitor"** %x.addr, align 4
  %this1 = load %"struct.boost::parameter::aux::tagged_argument"** %this.addr
  %0 = bitcast %"struct.boost::parameter::aux::tagged_argument"* %this1 to %"struct.boost::parameter::aux::tagged_argument_base"*
  %1 = getelementptr inbounds %"struct.boost::parameter::aux::tagged_argument"* %this1, i32 0, i32 0
  %2 = load %"class.boost::dfs_visitor"** %x.addr, align 4
  store %"class.boost::dfs_visitor"* %2, %"class.boost::dfs_visitor"** %1, align 4
  ret void
}

define linkonce_odr void @_ZN5boost9parameter3aux8arg_listINS1_15tagged_argumentINS_5graph8keywords3tag7visitorEKNS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES9_ISA_INS_12on_back_edgeEESA_INS_24on_forward_or_cross_edgeEEEEEEEENS1_14empty_arg_listEEC2ESL_RKSM_(%"struct.boost::parameter::aux::arg_list"* %this, %"struct.boost::parameter::aux::tagged_argument"* byval align 4 %head, %"struct.boost::parameter::aux::empty_arg_list"* %tail) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::parameter::aux::arg_list"*, align 4
  %tail.addr = alloca %"struct.boost::parameter::aux::empty_arg_list"*, align 4
  store %"struct.boost::parameter::aux::arg_list"* %this, %"struct.boost::parameter::aux::arg_list"** %this.addr, align 4
  store %"struct.boost::parameter::aux::empty_arg_list"* %tail, %"struct.boost::parameter::aux::empty_arg_list"** %tail.addr, align 4
  %this1 = load %"struct.boost::parameter::aux::arg_list"** %this.addr
  %0 = bitcast %"struct.boost::parameter::aux::arg_list"* %this1 to %"struct.boost::parameter::aux::empty_arg_list"*
  %1 = load %"struct.boost::parameter::aux::empty_arg_list"** %tail.addr, align 4
  %arg = getelementptr inbounds %"struct.boost::parameter::aux::arg_list"* %this1, i32 0, i32 0
  %2 = bitcast %"struct.boost::parameter::aux::tagged_argument"* %arg to i8*
  %3 = bitcast %"struct.boost::parameter::aux::tagged_argument"* %head to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 4, i32 4, i1 false)
  ret void
}

define linkonce_odr void @_ZN5boost16bgl_named_paramsINS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_IS3_INS_12on_back_edgeEES3_INS_24on_forward_or_cross_edgeEEEEEENS_15graph_visitor_tENS_11no_propertyEEC1ESC_(%"struct.boost::bgl_named_params"* %this, %"class.boost::dfs_visitor"* %v) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::bgl_named_params"*, align 4
  store %"struct.boost::bgl_named_params"* %this, %"struct.boost::bgl_named_params"** %this.addr, align 4
  %this1 = load %"struct.boost::bgl_named_params"** %this.addr
  call void @_ZN5boost16bgl_named_paramsINS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_IS3_INS_12on_back_edgeEES3_INS_24on_forward_or_cross_edgeEEEEEENS_15graph_visitor_tENS_11no_propertyEEC2ESC_(%"struct.boost::bgl_named_params"* %this1, %"class.boost::dfs_visitor"* %v)
  ret void
}

define linkonce_odr void @_ZN5boost16bgl_named_paramsINS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_IS3_INS_12on_back_edgeEES3_INS_24on_forward_or_cross_edgeEEEEEENS_15graph_visitor_tENS_11no_propertyEEC2ESC_(%"struct.boost::bgl_named_params"* %this, %"class.boost::dfs_visitor"* %v) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::bgl_named_params"*, align 4
  store %"struct.boost::bgl_named_params"* %this, %"struct.boost::bgl_named_params"** %this.addr, align 4
  %this1 = load %"struct.boost::bgl_named_params"** %this.addr
  %m_value = getelementptr inbounds %"struct.boost::bgl_named_params"* %this1, i32 0, i32 0
  call void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEEC1ERKSB_(%"class.boost::dfs_visitor"* %m_value, %"class.boost::dfs_visitor"* %v)
  %m_base = getelementptr inbounds %"struct.boost::bgl_named_params"* %this1, i32 0, i32 1
  ret void
}

define linkonce_odr void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEEC1ESA_(%"class.boost::dfs_visitor"* %this, %"struct.std::pair.8"* %vis) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::dfs_visitor"*, align 4
  store %"class.boost::dfs_visitor"* %this, %"class.boost::dfs_visitor"** %this.addr, align 4
  %this1 = load %"class.boost::dfs_visitor"** %this.addr
  call void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEEC2ESA_(%"class.boost::dfs_visitor"* %this1, %"struct.std::pair.8"* %vis)
  ret void
}

define linkonce_odr void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEEC2ESA_(%"class.boost::dfs_visitor"* %this, %"struct.std::pair.8"* %vis) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::dfs_visitor"*, align 4
  store %"class.boost::dfs_visitor"* %this, %"class.boost::dfs_visitor"** %this.addr, align 4
  %this1 = load %"class.boost::dfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::dfs_visitor"* %this1, i32 0, i32 0
  call void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES_IS0_INS1_12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEEEC1ERKS9_(%"struct.std::pair.8"* %m_vis, %"struct.std::pair.8"* %vis)
  ret void
}

define linkonce_odr void @_ZSt9make_pairI12edge_printerIN5boost12on_tree_edgeEESt4pairIS0_INS1_12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEEES4_IT_T0_ESA_SB_(%"struct.std::pair.8"* noalias sret %agg.result, %struct.edge_printer* %__x, %"struct.std::pair.12"* %__y) inlinehint {
entry:
  call void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES_IS0_INS1_12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEEEC1ERKS3_RKS8_(%"struct.std::pair.8"* %agg.result, %struct.edge_printer* %__x, %"struct.std::pair.12"* %__y)
  ret void
}

define linkonce_odr void @_ZSt9make_pairI12edge_printerIN5boost12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEESt4pairIT_T0_ES7_S8_(%"struct.std::pair.12"* noalias sret %agg.result, %struct.edge_printer.13* %__x, %struct.edge_printer.15* %__y) inlinehint {
entry:
  call void @_ZNSt4pairI12edge_printerIN5boost12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEEC1ERKS3_RKS5_(%"struct.std::pair.12"* %agg.result, %struct.edge_printer.13* %__x, %struct.edge_printer.15* %__y)
  ret void
}

define linkonce_odr void @_ZNSt4pairI12edge_printerIN5boost12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEED1Ev(%"struct.std::pair.12"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.12"*, align 4
  store %"struct.std::pair.12"* %this, %"struct.std::pair.12"** %this.addr, align 4
  %this1 = load %"struct.std::pair.12"** %this.addr
  call void @_ZNSt4pairI12edge_printerIN5boost12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEED2Ev(%"struct.std::pair.12"* %this1)
  ret void
}

define linkonce_odr void @_ZNSt4pairI12edge_printerIN5boost12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEED2Ev(%"struct.std::pair.12"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.12"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.std::pair.12"* %this, %"struct.std::pair.12"** %this.addr, align 4
  %this1 = load %"struct.std::pair.12"** %this.addr
  %second = getelementptr inbounds %"struct.std::pair.12"* %this1, i32 0, i32 1
  invoke void @_ZN12edge_printerIN5boost24on_forward_or_cross_edgeEED1Ev(%struct.edge_printer.15* %second)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %first = getelementptr inbounds %"struct.std::pair.12"* %this1, i32 0, i32 0
  call void @_ZN12edge_printerIN5boost12on_back_edgeEED1Ev(%struct.edge_printer.13* %first)
  ret void

lpad:                                             ; preds = %entry
  %0 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %1 = extractvalue { i8*, i32 } %0, 0
  store i8* %1, i8** %exn.slot
  %2 = extractvalue { i8*, i32 } %0, 1
  store i32 %2, i32* %ehselector.slot
  %first2 = getelementptr inbounds %"struct.std::pair.12"* %this1, i32 0, i32 0
  invoke void @_ZN12edge_printerIN5boost12on_back_edgeEED1Ev(%struct.edge_printer.13* %first2)
          to label %invoke.cont3 unwind label %terminate.lpad

invoke.cont3:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont3
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val4 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val4

terminate.lpad:                                   ; preds = %lpad
  %3 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZNSt4pairI12edge_printerIN5boost12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEEC1ERKS3_RKS5_(%"struct.std::pair.12"* %this, %struct.edge_printer.13* %__a, %struct.edge_printer.15* %__b) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.12"*, align 4
  %__a.addr = alloca %struct.edge_printer.13*, align 4
  %__b.addr = alloca %struct.edge_printer.15*, align 4
  store %"struct.std::pair.12"* %this, %"struct.std::pair.12"** %this.addr, align 4
  store %struct.edge_printer.13* %__a, %struct.edge_printer.13** %__a.addr, align 4
  store %struct.edge_printer.15* %__b, %struct.edge_printer.15** %__b.addr, align 4
  %this1 = load %"struct.std::pair.12"** %this.addr
  %0 = load %struct.edge_printer.13** %__a.addr
  %1 = load %struct.edge_printer.15** %__b.addr
  call void @_ZNSt4pairI12edge_printerIN5boost12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEEC2ERKS3_RKS5_(%"struct.std::pair.12"* %this1, %struct.edge_printer.13* %0, %struct.edge_printer.15* %1)
  ret void
}

define linkonce_odr void @_ZNSt4pairI12edge_printerIN5boost12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEEC2ERKS3_RKS5_(%"struct.std::pair.12"* %this, %struct.edge_printer.13* %__a, %struct.edge_printer.15* %__b) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.12"*, align 4
  %__a.addr = alloca %struct.edge_printer.13*, align 4
  %__b.addr = alloca %struct.edge_printer.15*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.std::pair.12"* %this, %"struct.std::pair.12"** %this.addr, align 4
  store %struct.edge_printer.13* %__a, %struct.edge_printer.13** %__a.addr, align 4
  store %struct.edge_printer.15* %__b, %struct.edge_printer.15** %__b.addr, align 4
  %this1 = load %"struct.std::pair.12"** %this.addr
  %first = getelementptr inbounds %"struct.std::pair.12"* %this1, i32 0, i32 0
  %0 = load %struct.edge_printer.13** %__a.addr, align 4
  call void @_ZN12edge_printerIN5boost12on_back_edgeEEC1ERKS2_(%struct.edge_printer.13* %first, %struct.edge_printer.13* %0)
  %second = getelementptr inbounds %"struct.std::pair.12"* %this1, i32 0, i32 1
  %1 = load %struct.edge_printer.15** %__b.addr, align 4
  invoke void @_ZN12edge_printerIN5boost24on_forward_or_cross_edgeEEC1ERKS2_(%struct.edge_printer.15* %second, %struct.edge_printer.15* %1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  ret void

lpad:                                             ; preds = %entry
  %2 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %3 = extractvalue { i8*, i32 } %2, 0
  store i8* %3, i8** %exn.slot
  %4 = extractvalue { i8*, i32 } %2, 1
  store i32 %4, i32* %ehselector.slot
  invoke void @_ZN12edge_printerIN5boost12on_back_edgeEED1Ev(%struct.edge_printer.13* %first)
          to label %invoke.cont2 unwind label %terminate.lpad

invoke.cont2:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont2
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val3

terminate.lpad:                                   ; preds = %lpad
  %5 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES_IS0_INS1_12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEEEC1ERKS3_RKS8_(%"struct.std::pair.8"* %this, %struct.edge_printer* %__a, %"struct.std::pair.12"* %__b) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.8"*, align 4
  %__a.addr = alloca %struct.edge_printer*, align 4
  %__b.addr = alloca %"struct.std::pair.12"*, align 4
  store %"struct.std::pair.8"* %this, %"struct.std::pair.8"** %this.addr, align 4
  store %struct.edge_printer* %__a, %struct.edge_printer** %__a.addr, align 4
  store %"struct.std::pair.12"* %__b, %"struct.std::pair.12"** %__b.addr, align 4
  %this1 = load %"struct.std::pair.8"** %this.addr
  %0 = load %struct.edge_printer** %__a.addr
  %1 = load %"struct.std::pair.12"** %__b.addr
  call void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES_IS0_INS1_12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEEEC2ERKS3_RKS8_(%"struct.std::pair.8"* %this1, %struct.edge_printer* %0, %"struct.std::pair.12"* %1)
  ret void
}

define linkonce_odr void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES_IS0_INS1_12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEEEC2ERKS3_RKS8_(%"struct.std::pair.8"* %this, %struct.edge_printer* %__a, %"struct.std::pair.12"* %__b) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.8"*, align 4
  %__a.addr = alloca %struct.edge_printer*, align 4
  %__b.addr = alloca %"struct.std::pair.12"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.std::pair.8"* %this, %"struct.std::pair.8"** %this.addr, align 4
  store %struct.edge_printer* %__a, %struct.edge_printer** %__a.addr, align 4
  store %"struct.std::pair.12"* %__b, %"struct.std::pair.12"** %__b.addr, align 4
  %this1 = load %"struct.std::pair.8"** %this.addr
  %first = getelementptr inbounds %"struct.std::pair.8"* %this1, i32 0, i32 0
  %0 = load %struct.edge_printer** %__a.addr, align 4
  call void @_ZN12edge_printerIN5boost12on_tree_edgeEEC1ERKS2_(%struct.edge_printer* %first, %struct.edge_printer* %0)
  %second = getelementptr inbounds %"struct.std::pair.8"* %this1, i32 0, i32 1
  %1 = load %"struct.std::pair.12"** %__b.addr, align 4
  invoke void @_ZNSt4pairI12edge_printerIN5boost12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEEC1ERKS6_(%"struct.std::pair.12"* %second, %"struct.std::pair.12"* %1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  ret void

lpad:                                             ; preds = %entry
  %2 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %3 = extractvalue { i8*, i32 } %2, 0
  store i8* %3, i8** %exn.slot
  %4 = extractvalue { i8*, i32 } %2, 1
  store i32 %4, i32* %ehselector.slot
  invoke void @_ZN12edge_printerIN5boost12on_tree_edgeEED1Ev(%struct.edge_printer* %first)
          to label %invoke.cont2 unwind label %terminate.lpad

invoke.cont2:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont2
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val3

terminate.lpad:                                   ; preds = %lpad
  %5 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN12edge_printerIN5boost24on_forward_or_cross_edgeEEC1ESs(%struct.edge_printer.15* %this, %"class.std::basic_string"* %edge_t) unnamed_addr align 2 {
entry:
  %this.addr = alloca %struct.edge_printer.15*, align 4
  store %struct.edge_printer.15* %this, %struct.edge_printer.15** %this.addr, align 4
  %this1 = load %struct.edge_printer.15** %this.addr
  call void @_ZN12edge_printerIN5boost24on_forward_or_cross_edgeEEC2ESs(%struct.edge_printer.15* %this1, %"class.std::basic_string"* %edge_t)
  ret void
}

define linkonce_odr void @_ZN12edge_printerIN5boost24on_forward_or_cross_edgeEEC2ESs(%struct.edge_printer.15* %this, %"class.std::basic_string"* %edge_t) unnamed_addr align 2 {
entry:
  %this.addr = alloca %struct.edge_printer.15*, align 4
  store %struct.edge_printer.15* %this, %struct.edge_printer.15** %this.addr, align 4
  %this1 = load %struct.edge_printer.15** %this.addr
  %0 = bitcast %struct.edge_printer.15* %this1 to %"struct.boost::base_visitor.16"*
  %m_edge_type = getelementptr inbounds %struct.edge_printer.15* %this1, i32 0, i32 0
  call void @_ZNSsC1ERKSs(%"class.std::basic_string"* %m_edge_type, %"class.std::basic_string"* %edge_t)
  ret void
}

define linkonce_odr void @_ZN12edge_printerIN5boost12on_back_edgeEEC1ESs(%struct.edge_printer.13* %this, %"class.std::basic_string"* %edge_t) unnamed_addr align 2 {
entry:
  %this.addr = alloca %struct.edge_printer.13*, align 4
  store %struct.edge_printer.13* %this, %struct.edge_printer.13** %this.addr, align 4
  %this1 = load %struct.edge_printer.13** %this.addr
  call void @_ZN12edge_printerIN5boost12on_back_edgeEEC2ESs(%struct.edge_printer.13* %this1, %"class.std::basic_string"* %edge_t)
  ret void
}

define linkonce_odr void @_ZN12edge_printerIN5boost12on_back_edgeEEC2ESs(%struct.edge_printer.13* %this, %"class.std::basic_string"* %edge_t) unnamed_addr align 2 {
entry:
  %this.addr = alloca %struct.edge_printer.13*, align 4
  store %struct.edge_printer.13* %this, %struct.edge_printer.13** %this.addr, align 4
  %this1 = load %struct.edge_printer.13** %this.addr
  %0 = bitcast %struct.edge_printer.13* %this1 to %"struct.boost::base_visitor.14"*
  %m_edge_type = getelementptr inbounds %struct.edge_printer.13* %this1, i32 0, i32 0
  call void @_ZNSsC1ERKSs(%"class.std::basic_string"* %m_edge_type, %"class.std::basic_string"* %edge_t)
  ret void
}

define linkonce_odr void @_ZN12edge_printerIN5boost12on_tree_edgeEEC1ESs(%struct.edge_printer* %this, %"class.std::basic_string"* %edge_t) unnamed_addr align 2 {
entry:
  %this.addr = alloca %struct.edge_printer*, align 4
  store %struct.edge_printer* %this, %struct.edge_printer** %this.addr, align 4
  %this1 = load %struct.edge_printer** %this.addr
  call void @_ZN12edge_printerIN5boost12on_tree_edgeEEC2ESs(%struct.edge_printer* %this1, %"class.std::basic_string"* %edge_t)
  ret void
}

define linkonce_odr void @_ZN12edge_printerIN5boost12on_tree_edgeEEC2ESs(%struct.edge_printer* %this, %"class.std::basic_string"* %edge_t) unnamed_addr align 2 {
entry:
  %this.addr = alloca %struct.edge_printer*, align 4
  store %struct.edge_printer* %this, %struct.edge_printer** %this.addr, align 4
  %this1 = load %struct.edge_printer** %this.addr
  %0 = bitcast %struct.edge_printer* %this1 to %"struct.boost::base_visitor"*
  %m_edge_type = getelementptr inbounds %struct.edge_printer* %this1, i32 0, i32 0
  call void @_ZNSsC1ERKSs(%"class.std::basic_string"* %m_edge_type, %"class.std::basic_string"* %edge_t)
  ret void
}

define linkonce_odr void @_ZNSt6vectorIjSaIjEED2Ev(%"class.std::vector.3"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector.3"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::vector.3"* %this, %"class.std::vector.3"** %this.addr, align 4
  %this1 = load %"class.std::vector.3"** %this.addr
  %0 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.4"* %0, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %1 = load i32** %_M_start, align 4
  %2 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base.4"* %2, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl2, i32 0, i32 1
  %3 = load i32** %_M_finish, align 4
  %4 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %call = invoke %"class.std::allocator.5"* @_ZNSt12_Vector_baseIjSaIjEE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.4"* %4)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  invoke void @_ZSt8_DestroyIPjjEvT_S1_RSaIT0_E(i32* %1, i32* %3, %"class.std::allocator.5"* %call)
          to label %invoke.cont3 unwind label %lpad

invoke.cont3:                                     ; preds = %invoke.cont
  %5 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  call void @_ZNSt12_Vector_baseIjSaIjEED2Ev(%"struct.std::_Vector_base.4"* %5)
  ret void

lpad:                                             ; preds = %invoke.cont, %entry
  %6 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %7 = extractvalue { i8*, i32 } %6, 0
  store i8* %7, i8** %exn.slot
  %8 = extractvalue { i8*, i32 } %6, 1
  store i32 %8, i32* %ehselector.slot
  %9 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  invoke void @_ZNSt12_Vector_baseIjSaIjEED2Ev(%"struct.std::_Vector_base.4"* %9)
          to label %invoke.cont4 unwind label %terminate.lpad

invoke.cont4:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont4
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val5 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val5

terminate.lpad:                                   ; preds = %lpad
  %10 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZSt8_DestroyIPjjEvT_S1_RSaIT0_E(i32* %__first, i32* %__last, %"class.std::allocator.5"*) inlinehint {
entry:
  %__first.addr = alloca i32*, align 4
  %__last.addr = alloca i32*, align 4
  %.addr = alloca %"class.std::allocator.5"*, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32* %__last, i32** %__last.addr, align 4
  store %"class.std::allocator.5"* %0, %"class.std::allocator.5"** %.addr, align 4
  %1 = load i32** %__first.addr, align 4
  %2 = load i32** %__last.addr, align 4
  call void @_ZSt8_DestroyIPjEvT_S1_(i32* %1, i32* %2)
  ret void
}

define linkonce_odr %"class.std::allocator.5"* @_ZNSt12_Vector_baseIjSaIjEE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.4"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base.4"*, align 4
  store %"struct.std::_Vector_base.4"* %this, %"struct.std::_Vector_base.4"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base.4"** %this.addr
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.4"* %this1, i32 0, i32 0
  %0 = bitcast %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl to %"class.std::allocator.5"*
  ret %"class.std::allocator.5"* %0
}

define linkonce_odr void @_ZNSt12_Vector_baseIjSaIjEED2Ev(%"struct.std::_Vector_base.4"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base.4"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.std::_Vector_base.4"* %this, %"struct.std::_Vector_base.4"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base.4"** %this.addr
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.4"* %this1, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %0 = load i32** %_M_start, align 4
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base.4"* %this1, i32 0, i32 0
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl2, i32 0, i32 2
  %1 = load i32** %_M_end_of_storage, align 4
  %_M_impl3 = getelementptr inbounds %"struct.std::_Vector_base.4"* %this1, i32 0, i32 0
  %_M_start4 = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl3, i32 0, i32 0
  %2 = load i32** %_M_start4, align 4
  %sub.ptr.lhs.cast = ptrtoint i32* %1 to i32
  %sub.ptr.rhs.cast = ptrtoint i32* %2 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 4
  invoke void @_ZNSt12_Vector_baseIjSaIjEE13_M_deallocateEPjj(%"struct.std::_Vector_base.4"* %this1, i32* %0, i32 %sub.ptr.div)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %_M_impl5 = getelementptr inbounds %"struct.std::_Vector_base.4"* %this1, i32 0, i32 0
  call void @_ZNSt12_Vector_baseIjSaIjEE12_Vector_implD1Ev(%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl5) nounwind
  ret void

lpad:                                             ; preds = %entry
  %3 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %4 = extractvalue { i8*, i32 } %3, 0
  store i8* %4, i8** %exn.slot
  %5 = extractvalue { i8*, i32 } %3, 1
  store i32 %5, i32* %ehselector.slot
  %_M_impl6 = getelementptr inbounds %"struct.std::_Vector_base.4"* %this1, i32 0, i32 0
  call void @_ZNSt12_Vector_baseIjSaIjEE12_Vector_implD1Ev(%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl6) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val7 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val7
}

define linkonce_odr void @_ZNSt12_Vector_baseIjSaIjEE13_M_deallocateEPjj(%"struct.std::_Vector_base.4"* %this, i32* %__p, i32 %__n) nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base.4"*, align 4
  %__p.addr = alloca i32*, align 4
  %__n.addr = alloca i32, align 4
  store %"struct.std::_Vector_base.4"* %this, %"struct.std::_Vector_base.4"** %this.addr, align 4
  store i32* %__p, i32** %__p.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  %this1 = load %"struct.std::_Vector_base.4"** %this.addr
  %0 = load i32** %__p.addr, align 4
  %tobool = icmp ne i32* %0, null
  br i1 %tobool, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.4"* %this1, i32 0, i32 0
  %1 = bitcast %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl to %"class.__gnu_cxx::new_allocator.6"*
  %2 = load i32** %__p.addr, align 4
  %3 = load i32* %__n.addr, align 4
  call void @_ZN9__gnu_cxx13new_allocatorIjE10deallocateEPjj(%"class.__gnu_cxx::new_allocator.6"* %1, i32* %2, i32 %3)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
  ret void
}

define linkonce_odr void @_ZNSt12_Vector_baseIjSaIjEE12_Vector_implD1Ev(%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"*, align 4
  store %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this, %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"** %this.addr
  call void @_ZNSt12_Vector_baseIjSaIjEE12_Vector_implD2Ev(%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this1) nounwind
  ret void
}

define linkonce_odr void @_ZNSt12_Vector_baseIjSaIjEE12_Vector_implD2Ev(%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"*, align 4
  store %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this, %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"** %this.addr
  %0 = bitcast %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this1 to %"class.std::allocator.5"*
  call void @_ZNSaIjED2Ev(%"class.std::allocator.5"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZSt8_DestroyIPjEvT_S1_(i32* %__first, i32* %__last) inlinehint {
entry:
  %__first.addr = alloca i32*, align 4
  %__last.addr = alloca i32*, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32* %__last, i32** %__last.addr, align 4
  %0 = load i32** %__first.addr, align 4
  %1 = load i32** %__last.addr, align 4
  call void @_ZNSt12_Destroy_auxILb1EE9__destroyIPjEEvT_S3_(i32* %0, i32* %1)
  ret void
}

define linkonce_odr void @_ZNSt12_Destroy_auxILb1EE9__destroyIPjEEvT_S3_(i32*, i32*) nounwind align 2 {
entry:
  %.addr = alloca i32*, align 4
  %.addr1 = alloca i32*, align 4
  store i32* %0, i32** %.addr, align 4
  store i32* %1, i32** %.addr1, align 4
  ret void
}

define linkonce_odr void @_ZNSt6vectorIjSaIjEEC2EjRKjRKS0_(%"class.std::vector.3"* %this, i32 %__n, i32* %__value, %"class.std::allocator.5"* %__a) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector.3"*, align 4
  %__n.addr = alloca i32, align 4
  %__value.addr = alloca i32*, align 4
  %__a.addr = alloca %"class.std::allocator.5"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::vector.3"* %this, %"class.std::vector.3"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i32* %__value, i32** %__value.addr, align 4
  store %"class.std::allocator.5"* %__a, %"class.std::allocator.5"** %__a.addr, align 4
  %this1 = load %"class.std::vector.3"** %this.addr
  %0 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %1 = load i32* %__n.addr, align 4
  %2 = load %"class.std::allocator.5"** %__a.addr, align 4
  call void @_ZNSt12_Vector_baseIjSaIjEEC2EjRKS0_(%"struct.std::_Vector_base.4"* %0, i32 %1, %"class.std::allocator.5"* %2)
  %3 = load i32* %__n.addr, align 4
  %4 = load i32** %__value.addr, align 4
  invoke void @_ZNSt6vectorIjSaIjEE18_M_fill_initializeEjRKj(%"class.std::vector.3"* %this1, i32 %3, i32* %4)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  ret void

lpad:                                             ; preds = %entry
  %5 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %6 = extractvalue { i8*, i32 } %5, 0
  store i8* %6, i8** %exn.slot
  %7 = extractvalue { i8*, i32 } %5, 1
  store i32 %7, i32* %ehselector.slot
  %8 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  invoke void @_ZNSt12_Vector_baseIjSaIjEED2Ev(%"struct.std::_Vector_base.4"* %8)
          to label %invoke.cont2 unwind label %terminate.lpad

invoke.cont2:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont2
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val3

terminate.lpad:                                   ; preds = %lpad
  %9 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZNSt12_Vector_baseIjSaIjEEC2EjRKS0_(%"struct.std::_Vector_base.4"* %this, i32 %__n, %"class.std::allocator.5"* %__a) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base.4"*, align 4
  %__n.addr = alloca i32, align 4
  %__a.addr = alloca %"class.std::allocator.5"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.std::_Vector_base.4"* %this, %"struct.std::_Vector_base.4"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store %"class.std::allocator.5"* %__a, %"class.std::allocator.5"** %__a.addr, align 4
  %this1 = load %"struct.std::_Vector_base.4"** %this.addr
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.4"* %this1, i32 0, i32 0
  %0 = load %"class.std::allocator.5"** %__a.addr, align 4
  call void @_ZNSt12_Vector_baseIjSaIjEE12_Vector_implC1ERKS0_(%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl, %"class.std::allocator.5"* %0)
  %1 = load i32* %__n.addr, align 4
  %call = invoke i32* @_ZNSt12_Vector_baseIjSaIjEE11_M_allocateEj(%"struct.std::_Vector_base.4"* %this1, i32 %1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base.4"* %this1, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl2, i32 0, i32 0
  store i32* %call, i32** %_M_start, align 4
  %_M_impl3 = getelementptr inbounds %"struct.std::_Vector_base.4"* %this1, i32 0, i32 0
  %_M_start4 = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl3, i32 0, i32 0
  %2 = load i32** %_M_start4, align 4
  %_M_impl5 = getelementptr inbounds %"struct.std::_Vector_base.4"* %this1, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl5, i32 0, i32 1
  store i32* %2, i32** %_M_finish, align 4
  %_M_impl6 = getelementptr inbounds %"struct.std::_Vector_base.4"* %this1, i32 0, i32 0
  %_M_start7 = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl6, i32 0, i32 0
  %3 = load i32** %_M_start7, align 4
  %4 = load i32* %__n.addr, align 4
  %add.ptr = getelementptr inbounds i32* %3, i32 %4
  %_M_impl8 = getelementptr inbounds %"struct.std::_Vector_base.4"* %this1, i32 0, i32 0
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl8, i32 0, i32 2
  store i32* %add.ptr, i32** %_M_end_of_storage, align 4
  ret void

lpad:                                             ; preds = %entry
  %5 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %6 = extractvalue { i8*, i32 } %5, 0
  store i8* %6, i8** %exn.slot
  %7 = extractvalue { i8*, i32 } %5, 1
  store i32 %7, i32* %ehselector.slot
  call void @_ZNSt12_Vector_baseIjSaIjEE12_Vector_implD1Ev(%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val9 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val9
}

define linkonce_odr void @_ZNSt6vectorIjSaIjEE18_M_fill_initializeEjRKj(%"class.std::vector.3"* %this, i32 %__n, i32* %__value) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.3"*, align 4
  %__n.addr = alloca i32, align 4
  %__value.addr = alloca i32*, align 4
  store %"class.std::vector.3"* %this, %"class.std::vector.3"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i32* %__value, i32** %__value.addr, align 4
  %this1 = load %"class.std::vector.3"** %this.addr
  %0 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.4"* %0, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %1 = load i32** %_M_start, align 4
  %2 = load i32* %__n.addr, align 4
  %3 = load i32** %__value.addr, align 4
  %4 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %call = call %"class.std::allocator.5"* @_ZNSt12_Vector_baseIjSaIjEE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.4"* %4)
  call void @_ZSt24__uninitialized_fill_n_aIPjjjjEvT_T0_RKT1_RSaIT2_E(i32* %1, i32 %2, i32* %3, %"class.std::allocator.5"* %call)
  %5 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base.4"* %5, i32 0, i32 0
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl2, i32 0, i32 2
  %6 = load i32** %_M_end_of_storage, align 4
  %7 = bitcast %"class.std::vector.3"* %this1 to %"struct.std::_Vector_base.4"*
  %_M_impl3 = getelementptr inbounds %"struct.std::_Vector_base.4"* %7, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl3, i32 0, i32 1
  store i32* %6, i32** %_M_finish, align 4
  ret void
}

define linkonce_odr void @_ZSt24__uninitialized_fill_n_aIPjjjjEvT_T0_RKT1_RSaIT2_E(i32* %__first, i32 %__n, i32* %__x, %"class.std::allocator.5"*) inlinehint {
entry:
  %__first.addr = alloca i32*, align 4
  %__n.addr = alloca i32, align 4
  %__x.addr = alloca i32*, align 4
  %.addr = alloca %"class.std::allocator.5"*, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i32* %__x, i32** %__x.addr, align 4
  store %"class.std::allocator.5"* %0, %"class.std::allocator.5"** %.addr, align 4
  %1 = load i32** %__first.addr, align 4
  %2 = load i32* %__n.addr, align 4
  %3 = load i32** %__x.addr, align 4
  call void @_ZSt20uninitialized_fill_nIPjjjEvT_T0_RKT1_(i32* %1, i32 %2, i32* %3)
  ret void
}

define linkonce_odr void @_ZSt20uninitialized_fill_nIPjjjEvT_T0_RKT1_(i32* %__first, i32 %__n, i32* %__x) inlinehint {
entry:
  %__first.addr = alloca i32*, align 4
  %__n.addr = alloca i32, align 4
  %__x.addr = alloca i32*, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i32* %__x, i32** %__x.addr, align 4
  %0 = load i32** %__first.addr, align 4
  %1 = load i32* %__n.addr, align 4
  %2 = load i32** %__x.addr, align 4
  call void @_ZNSt22__uninitialized_fill_nILb1EE15__uninit_fill_nIPjjjEEvT_T0_RKT1_(i32* %0, i32 %1, i32* %2)
  ret void
}

define linkonce_odr void @_ZNSt22__uninitialized_fill_nILb1EE15__uninit_fill_nIPjjjEEvT_T0_RKT1_(i32* %__first, i32 %__n, i32* %__x) align 2 {
entry:
  %__first.addr = alloca i32*, align 4
  %__n.addr = alloca i32, align 4
  %__x.addr = alloca i32*, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i32* %__x, i32** %__x.addr, align 4
  %0 = load i32** %__first.addr, align 4
  %1 = load i32* %__n.addr, align 4
  %2 = load i32** %__x.addr, align 4
  %call = call i32* @_ZSt6fill_nIPjjjET_S1_T0_RKT1_(i32* %0, i32 %1, i32* %2)
  ret void
}

define linkonce_odr i32* @_ZSt6fill_nIPjjjET_S1_T0_RKT1_(i32* %__first, i32 %__n, i32* %__value) inlinehint {
entry:
  %__first.addr = alloca i32*, align 4
  %__n.addr = alloca i32, align 4
  %__value.addr = alloca i32*, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i32* %__value, i32** %__value.addr, align 4
  %0 = load i32** %__first.addr, align 4
  %call = call i32* @_ZSt12__niter_baseIPjENSt11_Niter_baseIT_E13iterator_typeES2_(i32* %0)
  %1 = load i32* %__n.addr, align 4
  %2 = load i32** %__value.addr, align 4
  %call1 = call i32* @_ZSt10__fill_n_aIPjjjEN9__gnu_cxx11__enable_ifIXsr11__is_scalarIT1_EE7__valueET_E6__typeES4_T0_RKS3_(i32* %call, i32 %1, i32* %2)
  ret i32* %call1
}

define linkonce_odr i32* @_ZSt10__fill_n_aIPjjjEN9__gnu_cxx11__enable_ifIXsr11__is_scalarIT1_EE7__valueET_E6__typeES4_T0_RKS3_(i32* %__first, i32 %__n, i32* %__value) nounwind inlinehint {
entry:
  %__first.addr = alloca i32*, align 4
  %__n.addr = alloca i32, align 4
  %__value.addr = alloca i32*, align 4
  %__tmp = alloca i32, align 4
  %__niter = alloca i32, align 4
  store i32* %__first, i32** %__first.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i32* %__value, i32** %__value.addr, align 4
  %0 = load i32** %__value.addr, align 4
  %1 = load i32* %0, align 4
  store i32 %1, i32* %__tmp, align 4
  %2 = load i32* %__n.addr, align 4
  store i32 %2, i32* %__niter, align 4
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %3 = load i32* %__niter, align 4
  %cmp = icmp ugt i32 %3, 0
  br i1 %cmp, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %4 = load i32* %__tmp, align 4
  %5 = load i32** %__first.addr, align 4
  store i32 %4, i32* %5, align 4
  br label %for.inc

for.inc:                                          ; preds = %for.body
  %6 = load i32* %__niter, align 4
  %dec = add i32 %6, -1
  store i32 %dec, i32* %__niter, align 4
  %7 = load i32** %__first.addr, align 4
  %incdec.ptr = getelementptr inbounds i32* %7, i32 1
  store i32* %incdec.ptr, i32** %__first.addr, align 4
  br label %for.cond

for.end:                                          ; preds = %for.cond
  %8 = load i32** %__first.addr, align 4
  ret i32* %8
}

define linkonce_odr i32* @_ZSt12__niter_baseIPjENSt11_Niter_baseIT_E13iterator_typeES2_(i32* %__it) inlinehint {
entry:
  %__it.addr = alloca i32*, align 4
  store i32* %__it, i32** %__it.addr, align 4
  %0 = load i32** %__it.addr, align 4
  %call = call i32* @_ZNSt10_Iter_baseIPjLb0EE7_S_baseES0_(i32* %0)
  ret i32* %call
}

define linkonce_odr i32* @_ZNSt10_Iter_baseIPjLb0EE7_S_baseES0_(i32* %__it) nounwind align 2 {
entry:
  %__it.addr = alloca i32*, align 4
  store i32* %__it, i32** %__it.addr, align 4
  %0 = load i32** %__it.addr, align 4
  ret i32* %0
}

define linkonce_odr void @_ZNSt12_Vector_baseIjSaIjEE12_Vector_implC1ERKS0_(%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this, %"class.std::allocator.5"* %__a) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"*, align 4
  %__a.addr = alloca %"class.std::allocator.5"*, align 4
  store %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this, %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"** %this.addr, align 4
  store %"class.std::allocator.5"* %__a, %"class.std::allocator.5"** %__a.addr, align 4
  %this1 = load %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"** %this.addr
  %0 = load %"class.std::allocator.5"** %__a.addr
  call void @_ZNSt12_Vector_baseIjSaIjEE12_Vector_implC2ERKS0_(%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this1, %"class.std::allocator.5"* %0)
  ret void
}

define linkonce_odr i32* @_ZNSt12_Vector_baseIjSaIjEE11_M_allocateEj(%"struct.std::_Vector_base.4"* %this, i32 %__n) align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base.4"*, align 4
  %__n.addr = alloca i32, align 4
  store %"struct.std::_Vector_base.4"* %this, %"struct.std::_Vector_base.4"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  %this1 = load %"struct.std::_Vector_base.4"** %this.addr
  %0 = load i32* %__n.addr, align 4
  %cmp = icmp ne i32 %0, 0
  br i1 %cmp, label %cond.true, label %cond.false

cond.true:                                        ; preds = %entry
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.4"* %this1, i32 0, i32 0
  %1 = bitcast %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %_M_impl to %"class.__gnu_cxx::new_allocator.6"*
  %2 = load i32* %__n.addr, align 4
  %call = call i32* @_ZN9__gnu_cxx13new_allocatorIjE8allocateEjPKv(%"class.__gnu_cxx::new_allocator.6"* %1, i32 %2, i8* null)
  br label %cond.end

cond.false:                                       ; preds = %entry
  br label %cond.end

cond.end:                                         ; preds = %cond.false, %cond.true
  %cond = phi i32* [ %call, %cond.true ], [ null, %cond.false ]
  ret i32* %cond
}

define linkonce_odr void @_ZNSt12_Vector_baseIjSaIjEE12_Vector_implC2ERKS0_(%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this, %"class.std::allocator.5"* %__a) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"*, align 4
  %__a.addr = alloca %"class.std::allocator.5"*, align 4
  store %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this, %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"** %this.addr, align 4
  store %"class.std::allocator.5"* %__a, %"class.std::allocator.5"** %__a.addr, align 4
  %this1 = load %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"** %this.addr
  %0 = bitcast %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this1 to %"class.std::allocator.5"*
  %1 = load %"class.std::allocator.5"** %__a.addr, align 4
  call void @_ZNSaIjEC2ERKS_(%"class.std::allocator.5"* %0, %"class.std::allocator.5"* %1) nounwind
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this1, i32 0, i32 0
  store i32* null, i32** %_M_start, align 4
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this1, i32 0, i32 1
  store i32* null, i32** %_M_finish, align 4
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_impl"* %this1, i32 0, i32 2
  store i32* null, i32** %_M_end_of_storage, align 4
  ret void
}

define linkonce_odr void @_ZNSaIjEC2ERKS_(%"class.std::allocator.5"* %this, %"class.std::allocator.5"* %__a) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.5"*, align 4
  %__a.addr = alloca %"class.std::allocator.5"*, align 4
  store %"class.std::allocator.5"* %this, %"class.std::allocator.5"** %this.addr, align 4
  store %"class.std::allocator.5"* %__a, %"class.std::allocator.5"** %__a.addr, align 4
  %this1 = load %"class.std::allocator.5"** %this.addr
  %0 = bitcast %"class.std::allocator.5"* %this1 to %"class.__gnu_cxx::new_allocator.6"*
  %1 = load %"class.std::allocator.5"** %__a.addr, align 4
  %2 = bitcast %"class.std::allocator.5"* %1 to %"class.__gnu_cxx::new_allocator.6"*
  call void @_ZN9__gnu_cxx13new_allocatorIjEC2ERKS1_(%"class.__gnu_cxx::new_allocator.6"* %0, %"class.__gnu_cxx::new_allocator.6"* %2) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIjEC2ERKS1_(%"class.__gnu_cxx::new_allocator.6"* %this, %"class.__gnu_cxx::new_allocator.6"*) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.6"*, align 4
  %.addr = alloca %"class.__gnu_cxx::new_allocator.6"*, align 4
  store %"class.__gnu_cxx::new_allocator.6"* %this, %"class.__gnu_cxx::new_allocator.6"** %this.addr, align 4
  store %"class.__gnu_cxx::new_allocator.6"* %0, %"class.__gnu_cxx::new_allocator.6"** %.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.6"** %this.addr
  ret void
}

define linkonce_odr i32 @_ZNK5boost14iterator_rangeINS_12range_detail16integer_iteratorIjEEE4sizeEv(%"class.boost::iterator_range"* %this) align 2 {
entry:
  %this.addr = alloca %"class.boost::iterator_range"*, align 4
  store %"class.boost::iterator_range"* %this, %"class.boost::iterator_range"** %this.addr, align 4
  %this1 = load %"class.boost::iterator_range"** %this.addr
  %m_End = getelementptr inbounds %"class.boost::iterator_range"* %this1, i32 0, i32 1
  %0 = bitcast %"class.boost::range_detail::integer_iterator"* %m_End to %"class.boost::iterator_facade"*
  %m_Begin = getelementptr inbounds %"class.boost::iterator_range"* %this1, i32 0, i32 0
  %1 = bitcast %"class.boost::range_detail::integer_iterator"* %m_Begin to %"class.boost::iterator_facade"*
  %call = call i32 @_ZN5boostmiINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiS3_jS4_jiEENS_6detail23enable_if_interoperableIT_T4_NS_3mpl6apply2INS5_22choose_difference_typeES7_S8_E4typeEE4typeERKNS_15iterator_facadeIS7_T0_T1_T2_T3_EERKNSG_IS8_T5_T6_T7_T8_EE(%"class.boost::iterator_facade"* %0, %"class.boost::iterator_facade"* %1)
  ret i32 %call
}

define linkonce_odr i32 @_ZN5boostmiINS_12range_detail16integer_iteratorIjEEjNS_27random_access_traversal_tagEjiS3_jS4_jiEENS_6detail23enable_if_interoperableIT_T4_NS_3mpl6apply2INS5_22choose_difference_typeES7_S8_E4typeEE4typeERKNS_15iterator_facadeIS7_T0_T1_T2_T3_EERKNSG_IS8_T5_T6_T7_T8_EE(%"class.boost::iterator_facade"* %lhs, %"class.boost::iterator_facade"* %rhs) inlinehint {
entry:
  %lhs.addr = alloca %"class.boost::iterator_facade"*, align 4
  %rhs.addr = alloca %"class.boost::iterator_facade"*, align 4
  %agg.tmp = alloca %"struct.mpl_::bool_", align 1
  %ref.tmp = alloca %"struct.boost::is_convertible.40", align 1
  store %"class.boost::iterator_facade"* %lhs, %"class.boost::iterator_facade"** %lhs.addr, align 4
  store %"class.boost::iterator_facade"* %rhs, %"class.boost::iterator_facade"** %rhs.addr, align 4
  %0 = load %"class.boost::iterator_facade"** %lhs.addr, align 4
  %1 = bitcast %"class.boost::iterator_facade"* %0 to %"class.boost::range_detail::integer_iterator"*
  %2 = load %"class.boost::iterator_facade"** %rhs.addr, align 4
  %3 = bitcast %"class.boost::iterator_facade"* %2 to %"class.boost::range_detail::integer_iterator"*
  %4 = bitcast %"struct.boost::is_convertible.40"* %ref.tmp to %"struct.mpl_::bool_"*
  %call = call i32 @_ZN5boost20iterator_core_access13distance_fromINS_12range_detail16integer_iteratorIjEES4_EENT_15difference_typeERKS5_RKT0_N4mpl_5bool_ILb1EEE(%"class.boost::range_detail::integer_iterator"* %1, %"class.boost::range_detail::integer_iterator"* %3)
  ret i32 %call
}

define linkonce_odr i32 @_ZN5boost20iterator_core_access13distance_fromINS_12range_detail16integer_iteratorIjEES4_EENT_15difference_typeERKS5_RKT0_N4mpl_5bool_ILb1EEE(%"class.boost::range_detail::integer_iterator"* %f1, %"class.boost::range_detail::integer_iterator"* %f2) align 2 {
entry:
  %f1.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %f2.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %0 = alloca %"struct.mpl_::bool_", align 1
  store %"class.boost::range_detail::integer_iterator"* %f1, %"class.boost::range_detail::integer_iterator"** %f1.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %f2, %"class.boost::range_detail::integer_iterator"** %f2.addr, align 4
  %1 = load %"class.boost::range_detail::integer_iterator"** %f1.addr, align 4
  %2 = load %"class.boost::range_detail::integer_iterator"** %f2.addr, align 4
  %call = call i32 @_ZNK5boost12range_detail16integer_iteratorIjE11distance_toERKS2_(%"class.boost::range_detail::integer_iterator"* %1, %"class.boost::range_detail::integer_iterator"* %2)
  %sub = sub nsw i32 0, %call
  ret i32 %sub
}

define linkonce_odr i32 @_ZNK5boost12range_detail16integer_iteratorIjE11distance_toERKS2_(%"class.boost::range_detail::integer_iterator"* %this, %"class.boost::range_detail::integer_iterator"* %other) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  %other.addr = alloca %"class.boost::range_detail::integer_iterator"*, align 4
  store %"class.boost::range_detail::integer_iterator"* %this, %"class.boost::range_detail::integer_iterator"** %this.addr, align 4
  store %"class.boost::range_detail::integer_iterator"* %other, %"class.boost::range_detail::integer_iterator"** %other.addr, align 4
  %this1 = load %"class.boost::range_detail::integer_iterator"** %this.addr
  %0 = load %"class.boost::range_detail::integer_iterator"** %other.addr, align 4
  %m_value = getelementptr inbounds %"class.boost::range_detail::integer_iterator"* %0, i32 0, i32 0
  %1 = load i32* %m_value, align 4
  %m_value2 = getelementptr inbounds %"class.boost::range_detail::integer_iterator"* %this1, i32 0, i32 0
  %2 = load i32* %m_value2, align 4
  %sub = sub i32 %1, %2
  ret i32 %sub
}

define linkonce_odr void @_ZN5boost14adjacency_listINS_4vecSES1_NS_9directedSENS_11no_propertyES3_S3_NS_5listSEEC2IPSt4pairIiiEEET_SA_jjRKS3_(%"class.boost::adjacency_list"* %this, %"struct.std::pair"* %first, %"struct.std::pair"* %last, i32 %n, i32, %"struct.boost::no_property"* %p) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::adjacency_list"*, align 4
  %first.addr = alloca %"struct.std::pair"*, align 4
  %last.addr = alloca %"struct.std::pair"*, align 4
  %n.addr = alloca i32, align 4
  %.addr = alloca i32, align 4
  %p.addr = alloca %"struct.boost::no_property"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.boost::adjacency_list"* %this, %"class.boost::adjacency_list"** %this.addr, align 4
  store %"struct.std::pair"* %first, %"struct.std::pair"** %first.addr, align 4
  store %"struct.std::pair"* %last, %"struct.std::pair"** %last.addr, align 4
  store i32 %n, i32* %n.addr, align 4
  store i32 %0, i32* %.addr, align 4
  store %"struct.boost::no_property"* %p, %"struct.boost::no_property"** %p.addr, align 4
  %this1 = load %"class.boost::adjacency_list"** %this.addr
  %1 = bitcast %"class.boost::adjacency_list"* %this1 to %"class.boost::vec_adj_list_impl"*
  %2 = load i32* %n.addr, align 4
  %3 = load %"struct.std::pair"** %first.addr, align 4
  %4 = load %"struct.std::pair"** %last.addr, align 4
  call void @_ZN5boost17vec_adj_list_implINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_6detail12adj_list_genIS6_S2_S2_S3_S4_S4_S4_S5_E6configENS_21directed_graph_helperISA_EEEC2IPSt4pairIiiEEEjT_SI_(%"class.boost::vec_adj_list_impl"* %1, i32 %2, %"struct.std::pair"* %3, %"struct.std::pair"* %4)
  %5 = bitcast %"class.boost::adjacency_list"* %this1 to %"struct.boost::graph::maybe_named_graph"*
  %m_property = getelementptr inbounds %"class.boost::adjacency_list"* %this1, i32 0, i32 1
  %call = invoke noalias i8* @_Znwj(i32 1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %6 = bitcast i8* %call to %"struct.boost::no_property"*
  %7 = load %"struct.boost::no_property"** %p.addr, align 4
  invoke void @_ZN5boost10scoped_ptrINS_11no_propertyEEC1EPS1_(%"class.boost::scoped_ptr"* %m_property, %"struct.boost::no_property"* %6)
          to label %invoke.cont2 unwind label %lpad

invoke.cont2:                                     ; preds = %invoke.cont
  ret void

lpad:                                             ; preds = %invoke.cont, %entry
  %8 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %9 = extractvalue { i8*, i32 } %8, 0
  store i8* %9, i8** %exn.slot
  %10 = extractvalue { i8*, i32 } %8, 1
  store i32 %10, i32* %ehselector.slot
  %11 = bitcast %"class.boost::adjacency_list"* %this1 to %"class.boost::vec_adj_list_impl"*
  invoke void @_ZN5boost17vec_adj_list_implINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_6detail12adj_list_genIS6_S2_S2_S3_S4_S4_S4_S5_E6configENS_21directed_graph_helperISA_EEED2Ev(%"class.boost::vec_adj_list_impl"* %11)
          to label %invoke.cont3 unwind label %terminate.lpad

invoke.cont3:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont3
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val4 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val4

terminate.lpad:                                   ; preds = %lpad
  %12 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost17vec_adj_list_implINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_6detail12adj_list_genIS6_S2_S2_S3_S4_S4_S4_S5_E6configENS_21directed_graph_helperISA_EEEC2IPSt4pairIiiEEEjT_SI_(%"class.boost::vec_adj_list_impl"* %this, i32 %num_vertices, %"struct.std::pair"* %first, %"struct.std::pair"* %last) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::vec_adj_list_impl"*, align 4
  %num_vertices.addr = alloca i32, align 4
  %first.addr = alloca %"struct.std::pair"*, align 4
  %last.addr = alloca %"struct.std::pair"*, align 4
  %ref.tmp = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %ref.tmp2 = alloca %"class.std::allocator.0", align 1
  %tmp = alloca %"struct.std::pair.63", align 4
  store %"class.boost::vec_adj_list_impl"* %this, %"class.boost::vec_adj_list_impl"** %this.addr, align 4
  store i32 %num_vertices, i32* %num_vertices.addr, align 4
  store %"struct.std::pair"* %first, %"struct.std::pair"** %first.addr, align 4
  store %"struct.std::pair"* %last, %"struct.std::pair"** %last.addr, align 4
  %this1 = load %"class.boost::vec_adj_list_impl"** %this.addr
  %0 = bitcast %"class.boost::vec_adj_list_impl"* %this1 to %"struct.boost::adj_list_helper"*
  %m_edges = getelementptr inbounds %"class.boost::vec_adj_list_impl"* %this1, i32 0, i32 0
  call void @_ZNSt4listIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EEC1Ev(%"class.std::list"* %m_edges)
  %m_vertices = getelementptr inbounds %"class.boost::vec_adj_list_impl"* %this1, i32 0, i32 1
  %1 = load i32* %num_vertices.addr, align 4
  invoke void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexC1Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %ref.tmp)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  call void @_ZNSaIN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexEEC1Ev(%"class.std::allocator.0"* %ref.tmp2) nounwind
  invoke void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EEC1EjRKSB_RKSC_(%"class.std::vector"* %m_vertices, i32 %1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %ref.tmp, %"class.std::allocator.0"* %ref.tmp2)
          to label %invoke.cont4 unwind label %lpad3

invoke.cont4:                                     ; preds = %invoke.cont
  call void @_ZNSaIN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexEED1Ev(%"class.std::allocator.0"* %ref.tmp2) nounwind
  invoke void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexD1Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %ref.tmp)
          to label %invoke.cont5 unwind label %lpad

invoke.cont5:                                     ; preds = %invoke.cont4
  br label %while.cond

while.cond:                                       ; preds = %invoke.cont9, %invoke.cont5
  %2 = load %"struct.std::pair"** %first.addr, align 4
  %3 = load %"struct.std::pair"** %last.addr, align 4
  %cmp = icmp ne %"struct.std::pair"* %2, %3
  br i1 %cmp, label %while.body, label %while.end

while.body:                                       ; preds = %while.cond
  %4 = load %"struct.std::pair"** %first.addr, align 4
  %first7 = getelementptr inbounds %"struct.std::pair"* %4, i32 0, i32 0
  %5 = load i32* %first7, align 4
  %6 = load %"struct.std::pair"** %first.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair"* %6, i32 0, i32 1
  %7 = load i32* %second, align 4
  %8 = bitcast %"class.boost::vec_adj_list_impl"* %this1 to %"class.boost::adjacency_list"*
  %9 = bitcast %"class.boost::adjacency_list"* %8 to %"class.boost::vec_adj_list_impl"*
  invoke void @_ZN5boost8add_edgeINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_6detail12adj_list_genIS6_S2_S2_S3_S4_S4_S4_S5_E6configENS_21directed_graph_helperISA_EEEESt4pairINT0_15edge_descriptorEbENSE_17vertex_descriptorESH_RNS_17vec_adj_list_implIT_SE_T1_EE(%"struct.std::pair.63"* sret %tmp, i32 %5, i32 %7, %"class.boost::vec_adj_list_impl"* %9)
          to label %invoke.cont9 unwind label %lpad8

invoke.cont9:                                     ; preds = %while.body
  %10 = load %"struct.std::pair"** %first.addr, align 4
  %incdec.ptr = getelementptr inbounds %"struct.std::pair"* %10, i32 1
  store %"struct.std::pair"* %incdec.ptr, %"struct.std::pair"** %first.addr, align 4
  br label %while.cond

lpad:                                             ; preds = %invoke.cont4, %entry
  %11 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %12 = extractvalue { i8*, i32 } %11, 0
  store i8* %12, i8** %exn.slot
  %13 = extractvalue { i8*, i32 } %11, 1
  store i32 %13, i32* %ehselector.slot
  br label %ehcleanup

lpad3:                                            ; preds = %invoke.cont
  %14 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %15 = extractvalue { i8*, i32 } %14, 0
  store i8* %15, i8** %exn.slot
  %16 = extractvalue { i8*, i32 } %14, 1
  store i32 %16, i32* %ehselector.slot
  call void @_ZNSaIN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexEED1Ev(%"class.std::allocator.0"* %ref.tmp2) nounwind
  invoke void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexD1Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %ref.tmp)
          to label %invoke.cont6 unwind label %terminate.lpad

invoke.cont6:                                     ; preds = %lpad3
  br label %ehcleanup

lpad8:                                            ; preds = %while.body
  %17 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %18 = extractvalue { i8*, i32 } %17, 0
  store i8* %18, i8** %exn.slot
  %19 = extractvalue { i8*, i32 } %17, 1
  store i32 %19, i32* %ehselector.slot
  invoke void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EED1Ev(%"class.std::vector"* %m_vertices)
          to label %invoke.cont10 unwind label %terminate.lpad

while.end:                                        ; preds = %while.cond
  ret void

invoke.cont10:                                    ; preds = %lpad8
  br label %ehcleanup

ehcleanup:                                        ; preds = %invoke.cont10, %invoke.cont6, %lpad
  invoke void @_ZNSt4listIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EED1Ev(%"class.std::list"* %m_edges)
          to label %invoke.cont11 unwind label %terminate.lpad

invoke.cont11:                                    ; preds = %ehcleanup
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont11
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val12 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val12

terminate.lpad:                                   ; preds = %ehcleanup, %lpad8, %lpad3
  %20 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost10scoped_ptrINS_11no_propertyEEC1EPS1_(%"class.boost::scoped_ptr"* %this, %"struct.boost::no_property"* %p) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::scoped_ptr"*, align 4
  %p.addr = alloca %"struct.boost::no_property"*, align 4
  store %"class.boost::scoped_ptr"* %this, %"class.boost::scoped_ptr"** %this.addr, align 4
  store %"struct.boost::no_property"* %p, %"struct.boost::no_property"** %p.addr, align 4
  %this1 = load %"class.boost::scoped_ptr"** %this.addr
  %0 = load %"struct.boost::no_property"** %p.addr, align 4
  call void @_ZN5boost10scoped_ptrINS_11no_propertyEEC2EPS1_(%"class.boost::scoped_ptr"* %this1, %"struct.boost::no_property"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost17vec_adj_list_implINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_6detail12adj_list_genIS6_S2_S2_S3_S4_S4_S4_S5_E6configENS_21directed_graph_helperISA_EEED2Ev(%"class.boost::vec_adj_list_impl"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::vec_adj_list_impl"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.boost::vec_adj_list_impl"* %this, %"class.boost::vec_adj_list_impl"** %this.addr, align 4
  %this1 = load %"class.boost::vec_adj_list_impl"** %this.addr
  %m_vertices = getelementptr inbounds %"class.boost::vec_adj_list_impl"* %this1, i32 0, i32 1
  invoke void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EED1Ev(%"class.std::vector"* %m_vertices)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %m_edges = getelementptr inbounds %"class.boost::vec_adj_list_impl"* %this1, i32 0, i32 0
  call void @_ZNSt4listIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EED1Ev(%"class.std::list"* %m_edges)
  ret void

lpad:                                             ; preds = %entry
  %0 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %1 = extractvalue { i8*, i32 } %0, 0
  store i8* %1, i8** %exn.slot
  %2 = extractvalue { i8*, i32 } %0, 1
  store i32 %2, i32* %ehselector.slot
  %m_edges2 = getelementptr inbounds %"class.boost::vec_adj_list_impl"* %this1, i32 0, i32 0
  invoke void @_ZNSt4listIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EED1Ev(%"class.std::list"* %m_edges2)
          to label %invoke.cont3 unwind label %terminate.lpad

invoke.cont3:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont3
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val4 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val4

terminate.lpad:                                   ; preds = %lpad
  %3 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EED1Ev(%"class.std::vector"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  call void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EED2Ev(%"class.std::vector"* %this1)
  ret void
}

define linkonce_odr void @_ZNSt4listIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EED1Ev(%"class.std::list"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.std::list"*, align 4
  store %"class.std::list"* %this, %"class.std::list"** %this.addr, align 4
  %this1 = load %"class.std::list"** %this.addr
  call void @_ZNSt4listIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EED2Ev(%"class.std::list"* %this1)
  ret void
}

define linkonce_odr void @_ZNSt4listIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EED2Ev(%"class.std::list"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.std::list"*, align 4
  store %"class.std::list"* %this, %"class.std::list"** %this.addr, align 4
  %this1 = load %"class.std::list"** %this.addr
  %0 = bitcast %"class.std::list"* %this1 to %"class.std::_List_base"*
  call void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EED2Ev(%"class.std::_List_base"* %0)
  ret void
}

define linkonce_odr void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EED2Ev(%"class.std::_List_base"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::_List_base"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::_List_base"* %this, %"class.std::_List_base"** %this.addr, align 4
  %this1 = load %"class.std::_List_base"** %this.addr
  invoke void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EE8_M_clearEv(%"class.std::_List_base"* %this1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %_M_impl = getelementptr inbounds %"class.std::_List_base"* %this1, i32 0, i32 0
  call void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EE10_List_implD1Ev(%"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"* %_M_impl) nounwind
  ret void

lpad:                                             ; preds = %entry
  %0 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %1 = extractvalue { i8*, i32 } %0, 0
  store i8* %1, i8** %exn.slot
  %2 = extractvalue { i8*, i32 } %0, 1
  store i32 %2, i32* %ehselector.slot
  %_M_impl2 = getelementptr inbounds %"class.std::_List_base"* %this1, i32 0, i32 0
  call void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EE10_List_implD1Ev(%"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"* %_M_impl2) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val3
}

define linkonce_odr void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EE8_M_clearEv(%"class.std::_List_base"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::_List_base"*, align 4
  %__cur = alloca %"struct.std::_List_node"*, align 4
  %__tmp = alloca %"struct.std::_List_node"*, align 4
  %temp.lvalue = alloca %"class.std::allocator.60", align 1
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::_List_base"* %this, %"class.std::_List_base"** %this.addr, align 4
  %this1 = load %"class.std::_List_base"** %this.addr
  %_M_impl = getelementptr inbounds %"class.std::_List_base"* %this1, i32 0, i32 0
  %_M_node = getelementptr inbounds %"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"* %_M_impl, i32 0, i32 0
  %_M_next = getelementptr inbounds %"struct.std::__detail::_List_node_base"* %_M_node, i32 0, i32 0
  %0 = load %"struct.std::__detail::_List_node_base"** %_M_next, align 4
  %1 = bitcast %"struct.std::__detail::_List_node_base"* %0 to %"struct.std::_List_node"*
  store %"struct.std::_List_node"* %1, %"struct.std::_List_node"** %__cur, align 4
  br label %while.cond

while.cond:                                       ; preds = %invoke.cont5, %entry
  %2 = load %"struct.std::_List_node"** %__cur, align 4
  %3 = bitcast %"struct.std::_List_node"* %2 to %"struct.std::__detail::_List_node_base"*
  %_M_impl2 = getelementptr inbounds %"class.std::_List_base"* %this1, i32 0, i32 0
  %_M_node3 = getelementptr inbounds %"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"* %_M_impl2, i32 0, i32 0
  %cmp = icmp ne %"struct.std::__detail::_List_node_base"* %3, %_M_node3
  br i1 %cmp, label %while.body, label %while.end

while.body:                                       ; preds = %while.cond
  %4 = load %"struct.std::_List_node"** %__cur, align 4
  store %"struct.std::_List_node"* %4, %"struct.std::_List_node"** %__tmp, align 4
  %5 = load %"struct.std::_List_node"** %__cur, align 4
  %6 = bitcast %"struct.std::_List_node"* %5 to %"struct.std::__detail::_List_node_base"*
  %_M_next4 = getelementptr inbounds %"struct.std::__detail::_List_node_base"* %6, i32 0, i32 0
  %7 = load %"struct.std::__detail::_List_node_base"** %_M_next4, align 4
  %8 = bitcast %"struct.std::__detail::_List_node_base"* %7 to %"struct.std::_List_node"*
  store %"struct.std::_List_node"* %8, %"struct.std::_List_node"** %__cur, align 4
  call void @_ZNKSt10_List_baseIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EE19_M_get_Tp_allocatorEv(%"class.std::allocator.60"* sret %temp.lvalue, %"class.std::_List_base"* %this1)
  %9 = bitcast %"class.std::allocator.60"* %temp.lvalue to %"class.__gnu_cxx::new_allocator.61"*
  %10 = load %"struct.std::_List_node"** %__tmp, align 4
  %_M_data = getelementptr inbounds %"struct.std::_List_node"* %10, i32 0, i32 1
  %call = invoke %"struct.boost::list_edge"* @_ZSt11__addressofIN5boost9list_edgeIjNS0_11no_propertyEEEEPT_RS4_(%"struct.boost::list_edge"* %_M_data)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %while.body
  invoke void @_ZN9__gnu_cxx13new_allocatorIN5boost9list_edgeIjNS1_11no_propertyEEEE7destroyEPS4_(%"class.__gnu_cxx::new_allocator.61"* %9, %"struct.boost::list_edge"* %call)
          to label %invoke.cont5 unwind label %lpad

invoke.cont5:                                     ; preds = %invoke.cont
  call void @_ZNSaIN5boost9list_edgeIjNS_11no_propertyEEEED1Ev(%"class.std::allocator.60"* %temp.lvalue) nounwind
  %11 = load %"struct.std::_List_node"** %__tmp, align 4
  call void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EE11_M_put_nodeEPSt10_List_nodeIS3_E(%"class.std::_List_base"* %this1, %"struct.std::_List_node"* %11)
  br label %while.cond

lpad:                                             ; preds = %invoke.cont, %while.body
  %12 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %13 = extractvalue { i8*, i32 } %12, 0
  store i8* %13, i8** %exn.slot
  %14 = extractvalue { i8*, i32 } %12, 1
  store i32 %14, i32* %ehselector.slot
  call void @_ZNSaIN5boost9list_edgeIjNS_11no_propertyEEEED1Ev(%"class.std::allocator.60"* %temp.lvalue) nounwind
  br label %eh.resume

while.end:                                        ; preds = %while.cond
  ret void

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val6 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val6
}

define linkonce_odr void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EE10_List_implD1Ev(%"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"*, align 4
  store %"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"* %this, %"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"** %this.addr
  call void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EE10_List_implD2Ev(%"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"* %this1) nounwind
  ret void
}

define linkonce_odr void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EE10_List_implD2Ev(%"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"*, align 4
  store %"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"* %this, %"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"** %this.addr
  %0 = bitcast %"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"* %this1 to %"class.std::allocator"*
  call void @_ZNSaISt10_List_nodeIN5boost9list_edgeIjNS0_11no_propertyEEEEED2Ev(%"class.std::allocator"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZNSaISt10_List_nodeIN5boost9list_edgeIjNS0_11no_propertyEEEEED2Ev(%"class.std::allocator"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator"*, align 4
  store %"class.std::allocator"* %this, %"class.std::allocator"** %this.addr, align 4
  %this1 = load %"class.std::allocator"** %this.addr
  %0 = bitcast %"class.std::allocator"* %this1 to %"class.__gnu_cxx::new_allocator"*
  call void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIN5boost9list_edgeIjNS2_11no_propertyEEEEED2Ev(%"class.__gnu_cxx::new_allocator"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIN5boost9list_edgeIjNS2_11no_propertyEEEEED2Ev(%"class.__gnu_cxx::new_allocator"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator"*, align 4
  store %"class.__gnu_cxx::new_allocator"* %this, %"class.__gnu_cxx::new_allocator"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator"** %this.addr
  ret void
}

define linkonce_odr void @_ZNKSt10_List_baseIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EE19_M_get_Tp_allocatorEv(%"class.std::allocator.60"* noalias sret %agg.result, %"class.std::_List_base"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::_List_base"*, align 4
  store %"class.std::_List_base"* %this, %"class.std::_List_base"** %this.addr, align 4
  %this1 = load %"class.std::_List_base"** %this.addr
  %call = call %"class.std::allocator"* @_ZNKSt10_List_baseIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EE21_M_get_Node_allocatorEv(%"class.std::_List_base"* %this1)
  call void @_ZNSaIN5boost9list_edgeIjNS_11no_propertyEEEEC1ISt10_List_nodeIS2_EEERKSaIT_E(%"class.std::allocator.60"* %agg.result, %"class.std::allocator"* %call) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIN5boost9list_edgeIjNS1_11no_propertyEEEE7destroyEPS4_(%"class.__gnu_cxx::new_allocator.61"* %this, %"struct.boost::list_edge"* %__p) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.61"*, align 4
  %__p.addr = alloca %"struct.boost::list_edge"*, align 4
  store %"class.__gnu_cxx::new_allocator.61"* %this, %"class.__gnu_cxx::new_allocator.61"** %this.addr, align 4
  store %"struct.boost::list_edge"* %__p, %"struct.boost::list_edge"** %__p.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.61"** %this.addr
  %0 = load %"struct.boost::list_edge"** %__p.addr, align 4
  ret void
}

define linkonce_odr %"struct.boost::list_edge"* @_ZSt11__addressofIN5boost9list_edgeIjNS0_11no_propertyEEEEPT_RS4_(%"struct.boost::list_edge"* %__r) nounwind inlinehint {
entry:
  %__r.addr = alloca %"struct.boost::list_edge"*, align 4
  store %"struct.boost::list_edge"* %__r, %"struct.boost::list_edge"** %__r.addr, align 4
  %0 = load %"struct.boost::list_edge"** %__r.addr, align 4
  %1 = bitcast %"struct.boost::list_edge"* %0 to i8*
  %2 = bitcast i8* %1 to %"struct.boost::list_edge"*
  ret %"struct.boost::list_edge"* %2
}

define linkonce_odr void @_ZNSaIN5boost9list_edgeIjNS_11no_propertyEEEED1Ev(%"class.std::allocator.60"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.60"*, align 4
  store %"class.std::allocator.60"* %this, %"class.std::allocator.60"** %this.addr, align 4
  %this1 = load %"class.std::allocator.60"** %this.addr
  call void @_ZNSaIN5boost9list_edgeIjNS_11no_propertyEEEED2Ev(%"class.std::allocator.60"* %this1) nounwind
  ret void
}

define linkonce_odr void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EE11_M_put_nodeEPSt10_List_nodeIS3_E(%"class.std::_List_base"* %this, %"struct.std::_List_node"* %__p) align 2 {
entry:
  %this.addr = alloca %"class.std::_List_base"*, align 4
  %__p.addr = alloca %"struct.std::_List_node"*, align 4
  store %"class.std::_List_base"* %this, %"class.std::_List_base"** %this.addr, align 4
  store %"struct.std::_List_node"* %__p, %"struct.std::_List_node"** %__p.addr, align 4
  %this1 = load %"class.std::_List_base"** %this.addr
  %_M_impl = getelementptr inbounds %"class.std::_List_base"* %this1, i32 0, i32 0
  %0 = bitcast %"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"* %_M_impl to %"class.std::allocator"*
  %1 = bitcast %"class.std::allocator"* %0 to %"class.__gnu_cxx::new_allocator"*
  %2 = load %"struct.std::_List_node"** %__p.addr, align 4
  call void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIN5boost9list_edgeIjNS2_11no_propertyEEEEE10deallocateEPS6_j(%"class.__gnu_cxx::new_allocator"* %1, %"struct.std::_List_node"* %2, i32 1)
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIN5boost9list_edgeIjNS2_11no_propertyEEEEE10deallocateEPS6_j(%"class.__gnu_cxx::new_allocator"* %this, %"struct.std::_List_node"* %__p, i32) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator"*, align 4
  %__p.addr = alloca %"struct.std::_List_node"*, align 4
  %.addr = alloca i32, align 4
  store %"class.__gnu_cxx::new_allocator"* %this, %"class.__gnu_cxx::new_allocator"** %this.addr, align 4
  store %"struct.std::_List_node"* %__p, %"struct.std::_List_node"** %__p.addr, align 4
  store i32 %0, i32* %.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator"** %this.addr
  %1 = load %"struct.std::_List_node"** %__p.addr, align 4
  %2 = bitcast %"struct.std::_List_node"* %1 to i8*
  call void @_ZdlPv(i8* %2) nounwind
  ret void
}

define linkonce_odr void @_ZNSaIN5boost9list_edgeIjNS_11no_propertyEEEED2Ev(%"class.std::allocator.60"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.60"*, align 4
  store %"class.std::allocator.60"* %this, %"class.std::allocator.60"** %this.addr, align 4
  %this1 = load %"class.std::allocator.60"** %this.addr
  %0 = bitcast %"class.std::allocator.60"* %this1 to %"class.__gnu_cxx::new_allocator.61"*
  call void @_ZN9__gnu_cxx13new_allocatorIN5boost9list_edgeIjNS1_11no_propertyEEEED2Ev(%"class.__gnu_cxx::new_allocator.61"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIN5boost9list_edgeIjNS1_11no_propertyEEEED2Ev(%"class.__gnu_cxx::new_allocator.61"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.61"*, align 4
  store %"class.__gnu_cxx::new_allocator.61"* %this, %"class.__gnu_cxx::new_allocator.61"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.61"** %this.addr
  ret void
}

define linkonce_odr void @_ZNSaIN5boost9list_edgeIjNS_11no_propertyEEEEC1ISt10_List_nodeIS2_EEERKSaIT_E(%"class.std::allocator.60"* %this, %"class.std::allocator"*) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.60"*, align 4
  %.addr = alloca %"class.std::allocator"*, align 4
  store %"class.std::allocator.60"* %this, %"class.std::allocator.60"** %this.addr, align 4
  store %"class.std::allocator"* %0, %"class.std::allocator"** %.addr, align 4
  %this1 = load %"class.std::allocator.60"** %this.addr
  %1 = load %"class.std::allocator"** %.addr
  call void @_ZNSaIN5boost9list_edgeIjNS_11no_propertyEEEEC2ISt10_List_nodeIS2_EEERKSaIT_E(%"class.std::allocator.60"* %this1, %"class.std::allocator"* %1) nounwind
  ret void
}

define linkonce_odr %"class.std::allocator"* @_ZNKSt10_List_baseIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EE21_M_get_Node_allocatorEv(%"class.std::_List_base"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::_List_base"*, align 4
  store %"class.std::_List_base"* %this, %"class.std::_List_base"** %this.addr, align 4
  %this1 = load %"class.std::_List_base"** %this.addr
  %_M_impl = getelementptr inbounds %"class.std::_List_base"* %this1, i32 0, i32 0
  %0 = bitcast %"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"* %_M_impl to %"class.std::allocator"*
  ret %"class.std::allocator"* %0
}

define linkonce_odr void @_ZNSaIN5boost9list_edgeIjNS_11no_propertyEEEEC2ISt10_List_nodeIS2_EEERKSaIT_E(%"class.std::allocator.60"* %this, %"class.std::allocator"*) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.60"*, align 4
  %.addr = alloca %"class.std::allocator"*, align 4
  store %"class.std::allocator.60"* %this, %"class.std::allocator.60"** %this.addr, align 4
  store %"class.std::allocator"* %0, %"class.std::allocator"** %.addr, align 4
  %this1 = load %"class.std::allocator.60"** %this.addr
  %1 = bitcast %"class.std::allocator.60"* %this1 to %"class.__gnu_cxx::new_allocator.61"*
  call void @_ZN9__gnu_cxx13new_allocatorIN5boost9list_edgeIjNS1_11no_propertyEEEEC2Ev(%"class.__gnu_cxx::new_allocator.61"* %1) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIN5boost9list_edgeIjNS1_11no_propertyEEEEC2Ev(%"class.__gnu_cxx::new_allocator.61"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.61"*, align 4
  store %"class.__gnu_cxx::new_allocator.61"* %this, %"class.__gnu_cxx::new_allocator.61"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.61"** %this.addr
  ret void
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EED2Ev(%"class.std::vector"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  %0 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %0, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start, align 4
  %2 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base"* %2, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl2, i32 0, i32 1
  %3 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish, align 4
  %4 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %call = invoke %"class.std::allocator.0"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %4)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  invoke void @_ZSt8_DestroyIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESB_EvT_SD_RSaIT0_E(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %3, %"class.std::allocator.0"* %call)
          to label %invoke.cont3 unwind label %lpad

invoke.cont3:                                     ; preds = %invoke.cont
  %5 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  call void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EED2Ev(%"struct.std::_Vector_base"* %5)
  ret void

lpad:                                             ; preds = %invoke.cont, %entry
  %6 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %7 = extractvalue { i8*, i32 } %6, 0
  store i8* %7, i8** %exn.slot
  %8 = extractvalue { i8*, i32 } %6, 1
  store i32 %8, i32* %ehselector.slot
  %9 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  invoke void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EED2Ev(%"struct.std::_Vector_base"* %9)
          to label %invoke.cont4 unwind label %terminate.lpad

invoke.cont4:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont4
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val5 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val5

terminate.lpad:                                   ; preds = %lpad
  %10 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZSt8_DestroyIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESB_EvT_SD_RSaIT0_E(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"class.std::allocator.0"*) inlinehint {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__last.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %.addr = alloca %"class.std::allocator.0"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  store %"class.std::allocator.0"* %0, %"class.std::allocator.0"** %.addr, align 4
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  call void @_ZSt8_DestroyIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexEEvT_SD_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %2)
  ret void
}

define linkonce_odr %"class.std::allocator.0"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base"*, align 4
  store %"struct.std::_Vector_base"* %this, %"struct.std::_Vector_base"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base"** %this.addr
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %this1, i32 0, i32 0
  %0 = bitcast %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl to %"class.std::allocator.0"*
  ret %"class.std::allocator.0"* %0
}

define linkonce_odr void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EED2Ev(%"struct.std::_Vector_base"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.std::_Vector_base"* %this, %"struct.std::_Vector_base"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base"** %this.addr
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %this1, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start, align 4
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base"* %this1, i32 0, i32 0
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl2, i32 0, i32 2
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_end_of_storage, align 4
  %_M_impl3 = getelementptr inbounds %"struct.std::_Vector_base"* %this1, i32 0, i32 0
  %_M_start4 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl3, i32 0, i32 0
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start4, align 4
  %sub.ptr.lhs.cast = ptrtoint %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %1 to i32
  %sub.ptr.rhs.cast = ptrtoint %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %2 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 16
  invoke void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE13_M_deallocateEPSB_j(%"struct.std::_Vector_base"* %this1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %0, i32 %sub.ptr.div)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %_M_impl5 = getelementptr inbounds %"struct.std::_Vector_base"* %this1, i32 0, i32 0
  call void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE12_Vector_implD1Ev(%"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl5) nounwind
  ret void

lpad:                                             ; preds = %entry
  %3 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %4 = extractvalue { i8*, i32 } %3, 0
  store i8* %4, i8** %exn.slot
  %5 = extractvalue { i8*, i32 } %3, 1
  store i32 %5, i32* %ehselector.slot
  %_M_impl6 = getelementptr inbounds %"struct.std::_Vector_base"* %this1, i32 0, i32 0
  call void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE12_Vector_implD1Ev(%"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl6) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val7 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val7
}

define linkonce_odr void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE13_M_deallocateEPSB_j(%"struct.std::_Vector_base"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__p, i32 %__n) align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base"*, align 4
  %__p.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__n.addr = alloca i32, align 4
  store %"struct.std::_Vector_base"* %this, %"struct.std::_Vector_base"** %this.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__p, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__p.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  %this1 = load %"struct.std::_Vector_base"** %this.addr
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__p.addr, align 4
  %tobool = icmp ne %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %0, null
  br i1 %tobool, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %this1, i32 0, i32 0
  %1 = bitcast %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl to %"class.__gnu_cxx::new_allocator.1"*
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__p.addr, align 4
  %3 = load i32* %__n.addr, align 4
  call void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexEE10deallocateEPSC_j(%"class.__gnu_cxx::new_allocator.1"* %1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %2, i32 %3)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
  ret void
}

define linkonce_odr void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE12_Vector_implD1Ev(%"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"*, align 4
  store %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %this, %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"** %this.addr
  call void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE12_Vector_implD2Ev(%"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %this1) nounwind
  ret void
}

define linkonce_odr void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE12_Vector_implD2Ev(%"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"*, align 4
  store %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %this, %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"** %this.addr
  %0 = bitcast %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %this1 to %"class.std::allocator.0"*
  call void @_ZNSaIN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexEED2Ev(%"class.std::allocator.0"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZNSaIN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexEED2Ev(%"class.std::allocator.0"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.0"*, align 4
  store %"class.std::allocator.0"* %this, %"class.std::allocator.0"** %this.addr, align 4
  %this1 = load %"class.std::allocator.0"** %this.addr
  %0 = bitcast %"class.std::allocator.0"* %this1 to %"class.__gnu_cxx::new_allocator.1"*
  call void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexEED2Ev(%"class.__gnu_cxx::new_allocator.1"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexEED2Ev(%"class.__gnu_cxx::new_allocator.1"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.1"*, align 4
  store %"class.__gnu_cxx::new_allocator.1"* %this, %"class.__gnu_cxx::new_allocator.1"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.1"** %this.addr
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexEE10deallocateEPSC_j(%"class.__gnu_cxx::new_allocator.1"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__p, i32) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.1"*, align 4
  %__p.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %.addr = alloca i32, align 4
  store %"class.__gnu_cxx::new_allocator.1"* %this, %"class.__gnu_cxx::new_allocator.1"** %this.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__p, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__p.addr, align 4
  store i32 %0, i32* %.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.1"** %this.addr
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__p.addr, align 4
  %2 = bitcast %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %1 to i8*
  call void @_ZdlPv(i8* %2) nounwind
  ret void
}

define linkonce_odr void @_ZSt8_DestroyIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexEEvT_SD_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__last) inlinehint {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__last.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  call void @_ZNSt12_Destroy_auxILb0EE9__destroyIPN5boost6detail12adj_list_genINS2_14adjacency_listINS2_4vecSES6_NS2_9directedSENS2_11no_propertyES8_S8_NS2_5listSEEES6_S6_S7_S8_S8_S8_S9_E6config13stored_vertexEEEvT_SF_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %0, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %1)
  ret void
}

define linkonce_odr void @_ZNSt12_Destroy_auxILb0EE9__destroyIPN5boost6detail12adj_list_genINS2_14adjacency_listINS2_4vecSES6_NS2_9directedSENS2_11no_propertyES8_S8_NS2_5listSEEES6_S6_S7_S8_S8_S8_S9_E6config13stored_vertexEEEvT_SF_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__last) align 2 {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__last.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  %cmp = icmp ne %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %0, %1
  br i1 %cmp, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt11__addressofIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexEEPT_RSC_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %2)
  call void @_ZSt8_DestroyIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexEEvPT_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %call)
  br label %for.inc

for.inc:                                          ; preds = %for.body
  %3 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %incdec.ptr = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %3, i32 1
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %incdec.ptr, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  br label %for.cond

for.end:                                          ; preds = %for.cond
  ret void
}

define linkonce_odr void @_ZSt8_DestroyIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexEEvPT_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__pointer) inlinehint {
entry:
  %__pointer.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__pointer, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__pointer.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__pointer.addr, align 4
  call void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexD1Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %0)
  ret void
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt11__addressofIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexEEPT_RSC_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__r) nounwind inlinehint {
entry:
  %__r.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__r, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__r.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__r.addr, align 4
  %1 = bitcast %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %0 to i8*
  %2 = bitcast i8* %1 to %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %2
}

define linkonce_odr void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexD1Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %this.addr, align 4
  %this1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %this.addr
  call void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexD2Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexD2Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %this.addr, align 4
  %this1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %this.addr
  %0 = bitcast %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %this1 to %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"*
  call void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config18rand_stored_vertexD2Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config18rand_stored_vertexD2Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"** %this.addr, align 4
  %this1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"** %this.addr
  %m_out_edges = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this1, i32 0, i32 0
  call void @_ZNSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EED1Ev(%"class.std::vector.21"* %m_out_edges)
  ret void
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EED1Ev(%"class.std::vector.21"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector.21"*, align 4
  store %"class.std::vector.21"* %this, %"class.std::vector.21"** %this.addr, align 4
  %this1 = load %"class.std::vector.21"** %this.addr
  call void @_ZNSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EED2Ev(%"class.std::vector.21"* %this1)
  ret void
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EED2Ev(%"class.std::vector.21"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector.21"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::vector.21"* %this, %"class.std::vector.21"** %this.addr, align 4
  %this1 = load %"class.std::vector.21"** %this.addr
  %0 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.22"* %0, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %1 = load %"class.boost::detail::stored_edge_property"** %_M_start, align 4
  %2 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base.22"* %2, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl2, i32 0, i32 1
  %3 = load %"class.boost::detail::stored_edge_property"** %_M_finish, align 4
  %4 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %call = invoke %"class.std::allocator.23"* @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.22"* %4)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  invoke void @_ZSt8_DestroyIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEES4_EvT_S6_RSaIT0_E(%"class.boost::detail::stored_edge_property"* %1, %"class.boost::detail::stored_edge_property"* %3, %"class.std::allocator.23"* %call)
          to label %invoke.cont3 unwind label %lpad

invoke.cont3:                                     ; preds = %invoke.cont
  %5 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  call void @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EED2Ev(%"struct.std::_Vector_base.22"* %5)
  ret void

lpad:                                             ; preds = %invoke.cont, %entry
  %6 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %7 = extractvalue { i8*, i32 } %6, 0
  store i8* %7, i8** %exn.slot
  %8 = extractvalue { i8*, i32 } %6, 1
  store i32 %8, i32* %ehselector.slot
  %9 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  invoke void @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EED2Ev(%"struct.std::_Vector_base.22"* %9)
          to label %invoke.cont4 unwind label %terminate.lpad

invoke.cont4:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont4
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val5 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val5

terminate.lpad:                                   ; preds = %lpad
  %10 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZSt8_DestroyIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEES4_EvT_S6_RSaIT0_E(%"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"* %__last, %"class.std::allocator.23"*) inlinehint {
entry:
  %__first.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__last.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %.addr = alloca %"class.std::allocator.23"*, align 4
  store %"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  store %"class.std::allocator.23"* %0, %"class.std::allocator.23"** %.addr, align 4
  %1 = load %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  %2 = load %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  call void @_ZSt8_DestroyIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEEEvT_S6_(%"class.boost::detail::stored_edge_property"* %1, %"class.boost::detail::stored_edge_property"* %2)
  ret void
}

define linkonce_odr %"class.std::allocator.23"* @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.22"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base.22"*, align 4
  store %"struct.std::_Vector_base.22"* %this, %"struct.std::_Vector_base.22"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base.22"** %this.addr
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.22"* %this1, i32 0, i32 0
  %0 = bitcast %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl to %"class.std::allocator.23"*
  ret %"class.std::allocator.23"* %0
}

define linkonce_odr void @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EED2Ev(%"struct.std::_Vector_base.22"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base.22"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.std::_Vector_base.22"* %this, %"struct.std::_Vector_base.22"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base.22"** %this.addr
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.22"* %this1, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %0 = load %"class.boost::detail::stored_edge_property"** %_M_start, align 4
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base.22"* %this1, i32 0, i32 0
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl2, i32 0, i32 2
  %1 = load %"class.boost::detail::stored_edge_property"** %_M_end_of_storage, align 4
  %_M_impl3 = getelementptr inbounds %"struct.std::_Vector_base.22"* %this1, i32 0, i32 0
  %_M_start4 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl3, i32 0, i32 0
  %2 = load %"class.boost::detail::stored_edge_property"** %_M_start4, align 4
  %sub.ptr.lhs.cast = ptrtoint %"class.boost::detail::stored_edge_property"* %1 to i32
  %sub.ptr.rhs.cast = ptrtoint %"class.boost::detail::stored_edge_property"* %2 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 8
  invoke void @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE13_M_deallocateEPS4_j(%"struct.std::_Vector_base.22"* %this1, %"class.boost::detail::stored_edge_property"* %0, i32 %sub.ptr.div)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %_M_impl5 = getelementptr inbounds %"struct.std::_Vector_base.22"* %this1, i32 0, i32 0
  call void @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE12_Vector_implD1Ev(%"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl5) nounwind
  ret void

lpad:                                             ; preds = %entry
  %3 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %4 = extractvalue { i8*, i32 } %3, 0
  store i8* %4, i8** %exn.slot
  %5 = extractvalue { i8*, i32 } %3, 1
  store i32 %5, i32* %ehselector.slot
  %_M_impl6 = getelementptr inbounds %"struct.std::_Vector_base.22"* %this1, i32 0, i32 0
  call void @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE12_Vector_implD1Ev(%"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl6) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val7 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val7
}

define linkonce_odr void @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE13_M_deallocateEPS4_j(%"struct.std::_Vector_base.22"* %this, %"class.boost::detail::stored_edge_property"* %__p, i32 %__n) align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base.22"*, align 4
  %__p.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__n.addr = alloca i32, align 4
  store %"struct.std::_Vector_base.22"* %this, %"struct.std::_Vector_base.22"** %this.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__p, %"class.boost::detail::stored_edge_property"** %__p.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  %this1 = load %"struct.std::_Vector_base.22"** %this.addr
  %0 = load %"class.boost::detail::stored_edge_property"** %__p.addr, align 4
  %tobool = icmp ne %"class.boost::detail::stored_edge_property"* %0, null
  br i1 %tobool, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.22"* %this1, i32 0, i32 0
  %1 = bitcast %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl to %"class.__gnu_cxx::new_allocator.24"*
  %2 = load %"class.boost::detail::stored_edge_property"** %__p.addr, align 4
  %3 = load i32* %__n.addr, align 4
  call void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEEE10deallocateEPS5_j(%"class.__gnu_cxx::new_allocator.24"* %1, %"class.boost::detail::stored_edge_property"* %2, i32 %3)
  br label %if.end

if.end:                                           ; preds = %if.then, %entry
  ret void
}

define linkonce_odr void @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE12_Vector_implD1Ev(%"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"*, align 4
  store %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %this, %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"** %this.addr
  call void @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE12_Vector_implD2Ev(%"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %this1) nounwind
  ret void
}

define linkonce_odr void @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE12_Vector_implD2Ev(%"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"*, align 4
  store %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %this, %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"** %this.addr
  %0 = bitcast %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %this1 to %"class.std::allocator.23"*
  call void @_ZNSaIN5boost6detail20stored_edge_propertyIjNS_11no_propertyEEEED2Ev(%"class.std::allocator.23"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZNSaIN5boost6detail20stored_edge_propertyIjNS_11no_propertyEEEED2Ev(%"class.std::allocator.23"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.23"*, align 4
  store %"class.std::allocator.23"* %this, %"class.std::allocator.23"** %this.addr, align 4
  %this1 = load %"class.std::allocator.23"** %this.addr
  %0 = bitcast %"class.std::allocator.23"* %this1 to %"class.__gnu_cxx::new_allocator.24"*
  call void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEEED2Ev(%"class.__gnu_cxx::new_allocator.24"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEEED2Ev(%"class.__gnu_cxx::new_allocator.24"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.24"*, align 4
  store %"class.__gnu_cxx::new_allocator.24"* %this, %"class.__gnu_cxx::new_allocator.24"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.24"** %this.addr
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEEE10deallocateEPS5_j(%"class.__gnu_cxx::new_allocator.24"* %this, %"class.boost::detail::stored_edge_property"* %__p, i32) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.24"*, align 4
  %__p.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %.addr = alloca i32, align 4
  store %"class.__gnu_cxx::new_allocator.24"* %this, %"class.__gnu_cxx::new_allocator.24"** %this.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__p, %"class.boost::detail::stored_edge_property"** %__p.addr, align 4
  store i32 %0, i32* %.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.24"** %this.addr
  %1 = load %"class.boost::detail::stored_edge_property"** %__p.addr, align 4
  %2 = bitcast %"class.boost::detail::stored_edge_property"* %1 to i8*
  call void @_ZdlPv(i8* %2) nounwind
  ret void
}

define linkonce_odr void @_ZSt8_DestroyIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEEEvT_S6_(%"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"* %__last) inlinehint {
entry:
  %__first.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__last.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  %0 = load %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  %1 = load %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  call void @_ZNSt12_Destroy_auxILb0EE9__destroyIPN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEEEEvT_S8_(%"class.boost::detail::stored_edge_property"* %0, %"class.boost::detail::stored_edge_property"* %1)
  ret void
}

define linkonce_odr void @_ZNSt12_Destroy_auxILb0EE9__destroyIPN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEEEEvT_S8_(%"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"* %__last) align 2 {
entry:
  %__first.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__last.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %0 = load %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  %1 = load %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  %cmp = icmp ne %"class.boost::detail::stored_edge_property"* %0, %1
  br i1 %cmp, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %2 = load %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  %call = call %"class.boost::detail::stored_edge_property"* @_ZSt11__addressofIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEEEPT_RS5_(%"class.boost::detail::stored_edge_property"* %2)
  call void @_ZSt8_DestroyIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEEEvPT_(%"class.boost::detail::stored_edge_property"* %call)
  br label %for.inc

for.inc:                                          ; preds = %for.body
  %3 = load %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  %incdec.ptr = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %3, i32 1
  store %"class.boost::detail::stored_edge_property"* %incdec.ptr, %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  br label %for.cond

for.end:                                          ; preds = %for.cond
  ret void
}

define linkonce_odr void @_ZSt8_DestroyIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEEEvPT_(%"class.boost::detail::stored_edge_property"* %__pointer) inlinehint {
entry:
  %__pointer.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.boost::detail::stored_edge_property"* %__pointer, %"class.boost::detail::stored_edge_property"** %__pointer.addr, align 4
  %0 = load %"class.boost::detail::stored_edge_property"** %__pointer.addr, align 4
  call void @_ZN5boost6detail20stored_edge_propertyIjNS_11no_propertyEED1Ev(%"class.boost::detail::stored_edge_property"* %0)
  ret void
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZSt11__addressofIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEEEPT_RS5_(%"class.boost::detail::stored_edge_property"* %__r) nounwind inlinehint {
entry:
  %__r.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.boost::detail::stored_edge_property"* %__r, %"class.boost::detail::stored_edge_property"** %__r.addr, align 4
  %0 = load %"class.boost::detail::stored_edge_property"** %__r.addr, align 4
  %1 = bitcast %"class.boost::detail::stored_edge_property"* %0 to i8*
  %2 = bitcast i8* %1 to %"class.boost::detail::stored_edge_property"*
  ret %"class.boost::detail::stored_edge_property"* %2
}

define linkonce_odr void @_ZN5boost6detail20stored_edge_propertyIjNS_11no_propertyEED1Ev(%"class.boost::detail::stored_edge_property"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.boost::detail::stored_edge_property"* %this, %"class.boost::detail::stored_edge_property"** %this.addr, align 4
  %this1 = load %"class.boost::detail::stored_edge_property"** %this.addr
  call void @_ZN5boost6detail20stored_edge_propertyIjNS_11no_propertyEED2Ev(%"class.boost::detail::stored_edge_property"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost6detail20stored_edge_propertyIjNS_11no_propertyEED2Ev(%"class.boost::detail::stored_edge_property"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.boost::detail::stored_edge_property"* %this, %"class.boost::detail::stored_edge_property"** %this.addr, align 4
  %this1 = load %"class.boost::detail::stored_edge_property"** %this.addr
  %m_property = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %this1, i32 0, i32 1
  call void @_ZNSt8auto_ptrIN5boost11no_propertyEED1Ev(%"class.std::auto_ptr"* %m_property)
  ret void
}

define linkonce_odr void @_ZNSt8auto_ptrIN5boost11no_propertyEED1Ev(%"class.std::auto_ptr"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::auto_ptr"*, align 4
  store %"class.std::auto_ptr"* %this, %"class.std::auto_ptr"** %this.addr, align 4
  %this1 = load %"class.std::auto_ptr"** %this.addr
  call void @_ZNSt8auto_ptrIN5boost11no_propertyEED2Ev(%"class.std::auto_ptr"* %this1)
  ret void
}

define linkonce_odr void @_ZNSt8auto_ptrIN5boost11no_propertyEED2Ev(%"class.std::auto_ptr"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::auto_ptr"*, align 4
  store %"class.std::auto_ptr"* %this, %"class.std::auto_ptr"** %this.addr, align 4
  %this1 = load %"class.std::auto_ptr"** %this.addr
  %_M_ptr = getelementptr inbounds %"class.std::auto_ptr"* %this1, i32 0, i32 0
  %0 = load %"struct.boost::no_property"** %_M_ptr, align 4
  %isnull = icmp eq %"struct.boost::no_property"* %0, null
  br i1 %isnull, label %delete.end, label %delete.notnull

delete.notnull:                                   ; preds = %entry
  %1 = bitcast %"struct.boost::no_property"* %0 to i8*
  call void @_ZdlPv(i8* %1) nounwind
  br label %delete.end

delete.end:                                       ; preds = %delete.notnull, %entry
  ret void
}

define linkonce_odr void @_ZN5boost10scoped_ptrINS_11no_propertyEEC2EPS1_(%"class.boost::scoped_ptr"* %this, %"struct.boost::no_property"* %p) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::scoped_ptr"*, align 4
  %p.addr = alloca %"struct.boost::no_property"*, align 4
  store %"class.boost::scoped_ptr"* %this, %"class.boost::scoped_ptr"** %this.addr, align 4
  store %"struct.boost::no_property"* %p, %"struct.boost::no_property"** %p.addr, align 4
  %this1 = load %"class.boost::scoped_ptr"** %this.addr
  %px = getelementptr inbounds %"class.boost::scoped_ptr"* %this1, i32 0, i32 0
  %0 = load %"struct.boost::no_property"** %p.addr, align 4
  store %"struct.boost::no_property"* %0, %"struct.boost::no_property"** %px, align 4
  ret void
}

define linkonce_odr void @_ZNSt4listIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EEC1Ev(%"class.std::list"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::list"*, align 4
  store %"class.std::list"* %this, %"class.std::list"** %this.addr, align 4
  %this1 = load %"class.std::list"** %this.addr
  call void @_ZNSt4listIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EEC2Ev(%"class.std::list"* %this1)
  ret void
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EEC1EjRKSB_RKSC_(%"class.std::vector"* %this, i32 %__n, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__value, %"class.std::allocator.0"* %__a) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  %__n.addr = alloca i32, align 4
  %__value.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__a.addr = alloca %"class.std::allocator.0"*, align 4
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__value, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__value.addr, align 4
  store %"class.std::allocator.0"* %__a, %"class.std::allocator.0"** %__a.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  %0 = load i32* %__n.addr, align 4
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__value.addr
  %2 = load %"class.std::allocator.0"** %__a.addr
  call void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EEC2EjRKSB_RKSC_(%"class.std::vector"* %this1, i32 %0, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %1, %"class.std::allocator.0"* %2)
  ret void
}

define linkonce_odr void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexC1Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %this.addr, align 4
  %this1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %this.addr
  call void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexC2Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %this1)
  ret void
}

define linkonce_odr void @_ZNSaIN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexEEC1Ev(%"class.std::allocator.0"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.0"*, align 4
  store %"class.std::allocator.0"* %this, %"class.std::allocator.0"** %this.addr, align 4
  %this1 = load %"class.std::allocator.0"** %this.addr
  call void @_ZNSaIN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexEEC2Ev(%"class.std::allocator.0"* %this1) nounwind
  ret void
}

define linkonce_odr void @_ZNSaIN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexEED1Ev(%"class.std::allocator.0"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.0"*, align 4
  store %"class.std::allocator.0"* %this, %"class.std::allocator.0"** %this.addr, align 4
  %this1 = load %"class.std::allocator.0"** %this.addr
  call void @_ZNSaIN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexEED2Ev(%"class.std::allocator.0"* %this1) nounwind
  ret void
}

define linkonce_odr void @_ZN5boost8add_edgeINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_6detail12adj_list_genIS6_S2_S2_S3_S4_S4_S4_S5_E6configENS_21directed_graph_helperISA_EEEESt4pairINT0_15edge_descriptorEbENSE_17vertex_descriptorESH_RNS_17vec_adj_list_implIT_SE_T1_EE(%"struct.std::pair.63"* noalias sret %agg.result, i32 %u, i32 %v, %"class.boost::vec_adj_list_impl"* %g_) inlinehint {
entry:
  %u.addr = alloca i32, align 4
  %v.addr = alloca i32, align 4
  %g_.addr = alloca %"class.boost::vec_adj_list_impl"*, align 4
  %p = alloca %"struct.boost::no_property", align 1
  store i32 %u, i32* %u.addr, align 4
  store i32 %v, i32* %v.addr, align 4
  store %"class.boost::vec_adj_list_impl"* %g_, %"class.boost::vec_adj_list_impl"** %g_.addr, align 4
  %0 = load i32* %u.addr, align 4
  %1 = load i32* %v.addr, align 4
  %2 = load %"class.boost::vec_adj_list_impl"** %g_.addr, align 4
  call void @_ZN5boost8add_edgeINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_6detail12adj_list_genIS6_S2_S2_S3_S4_S4_S4_S5_E6configENS_21directed_graph_helperISA_EEEESt4pairINT0_15edge_descriptorEbENSE_17vertex_descriptorESH_RKNSE_18edge_property_typeERNS_17vec_adj_list_implIT_SE_T1_EE(%"struct.std::pair.63"* sret %agg.result, i32 %0, i32 %1, %"struct.boost::no_property"* %p, %"class.boost::vec_adj_list_impl"* %2)
  ret void
}

define linkonce_odr void @_ZN5boost8add_edgeINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_6detail12adj_list_genIS6_S2_S2_S3_S4_S4_S4_S5_E6configENS_21directed_graph_helperISA_EEEESt4pairINT0_15edge_descriptorEbENSE_17vertex_descriptorESH_RKNSE_18edge_property_typeERNS_17vec_adj_list_implIT_SE_T1_EE(%"struct.std::pair.63"* noalias sret %agg.result, i32 %u, i32 %v, %"struct.boost::no_property"* %p, %"class.boost::vec_adj_list_impl"* %g_) inlinehint {
entry:
  %u.addr = alloca i32, align 4
  %v.addr = alloca i32, align 4
  %p.addr = alloca %"struct.boost::no_property"*, align 4
  %g_.addr = alloca %"class.boost::vec_adj_list_impl"*, align 4
  %x = alloca i32, align 4
  %agg.tmp = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %g = alloca %"struct.boost::adj_list_helper"*, align 4
  store i32 %u, i32* %u.addr, align 4
  store i32 %v, i32* %v.addr, align 4
  store %"struct.boost::no_property"* %p, %"struct.boost::no_property"** %p.addr, align 4
  store %"class.boost::vec_adj_list_impl"* %g_, %"class.boost::vec_adj_list_impl"** %g_.addr, align 4
  %call = call i32* @_ZSt3maxIjERKT_S2_S2_(i32* %u.addr, i32* %v.addr)
  %0 = load i32* %call
  store i32 %0, i32* %x, align 4
  %1 = load i32* %x, align 4
  %2 = load %"class.boost::vec_adj_list_impl"** %g_.addr, align 4
  %3 = bitcast %"class.boost::vec_adj_list_impl"* %2 to %"struct.boost::adj_list_helper"*
  %call1 = call i32 @_ZN5boost12num_verticesINS_6detail12adj_list_genINS_14adjacency_listINS_4vecSES4_NS_9directedSENS_11no_propertyES6_S6_NS_5listSEEES4_S4_S5_S6_S6_S6_S7_E6configENS_21directed_graph_helperISA_EEEENT_18vertices_size_typeERKNS_15adj_list_helperISD_T0_EE(%"struct.boost::adj_list_helper"* %3)
  %cmp = icmp uge i32 %1, %call1
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %4 = load %"class.boost::vec_adj_list_impl"** %g_.addr, align 4
  %m_vertices = getelementptr inbounds %"class.boost::vec_adj_list_impl"* %4, i32 0, i32 1
  %5 = load i32* %x, align 4
  %add = add i32 %5, 1
  call void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexC1Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %agg.tmp)
  invoke void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE6resizeEjSB_(%"class.std::vector"* %m_vertices, i32 %add, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %agg.tmp)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %if.then
  call void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexD1Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %agg.tmp)
  br label %if.end

lpad:                                             ; preds = %if.then
  %6 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %7 = extractvalue { i8*, i32 } %6, 0
  store i8* %7, i8** %exn.slot
  %8 = extractvalue { i8*, i32 } %6, 1
  store i32 %8, i32* %ehselector.slot
  invoke void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexD1Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %agg.tmp)
          to label %invoke.cont2 unwind label %terminate.lpad

invoke.cont2:                                     ; preds = %lpad
  br label %eh.resume

if.end:                                           ; preds = %invoke.cont, %entry
  %9 = load %"class.boost::vec_adj_list_impl"** %g_.addr, align 4
  %10 = bitcast %"class.boost::vec_adj_list_impl"* %9 to %"struct.boost::adj_list_helper"*
  store %"struct.boost::adj_list_helper"* %10, %"struct.boost::adj_list_helper"** %g, align 4
  %11 = load i32* %u.addr, align 4
  %12 = load i32* %v.addr, align 4
  %13 = load %"struct.boost::no_property"** %p.addr, align 4
  %14 = load %"struct.boost::adj_list_helper"** %g, align 4
  %15 = bitcast %"struct.boost::adj_list_helper"* %14 to %"struct.boost::directed_graph_helper"*
  call void @_ZN5boost8add_edgeINS_6detail12adj_list_genINS_14adjacency_listINS_4vecSES4_NS_9directedSENS_11no_propertyES6_S6_NS_5listSEEES4_S4_S5_S6_S6_S6_S7_E6configEEESt4pairINS_21directed_graph_helperIT_E15edge_descriptorEbENSD_17vertex_descriptorESH_RKNSD_18edge_property_typeERSE_(%"struct.std::pair.63"* sret %agg.result, i32 %11, i32 %12, %"struct.boost::no_property"* %13, %"struct.boost::directed_graph_helper"* %15)
  ret void

eh.resume:                                        ; preds = %invoke.cont2
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val3

terminate.lpad:                                   ; preds = %lpad
  %16 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE6resizeEjSB_(%"class.std::vector"* %this, i32 %__new_size, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__x) align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  %__new_size.addr = alloca i32, align 4
  %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator.68", align 4
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  store i32 %__new_size, i32* %__new_size.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  %0 = load i32* %__new_size.addr, align 4
  %call = call i32 @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE4sizeEv(%"class.std::vector"* %this1)
  %cmp = icmp ugt i32 %0, %call
  br i1 %cmp, label %if.then, label %if.else

if.then:                                          ; preds = %entry
  call void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE3endEv(%"class.__gnu_cxx::__normal_iterator.68"* sret %agg.tmp, %"class.std::vector"* %this1)
  %1 = load i32* %__new_size.addr, align 4
  %call2 = call i32 @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE4sizeEv(%"class.std::vector"* %this1)
  %sub = sub i32 %1, %call2
  call void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE6insertEN9__gnu_cxx17__normal_iteratorIPSB_SD_EEjRKSB_(%"class.std::vector"* %this1, %"class.__gnu_cxx::__normal_iterator.68"* byval align 4 %agg.tmp, i32 %sub, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__x)
  br label %if.end6

if.else:                                          ; preds = %entry
  %2 = load i32* %__new_size.addr, align 4
  %call3 = call i32 @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE4sizeEv(%"class.std::vector"* %this1)
  %cmp4 = icmp ult i32 %2, %call3
  br i1 %cmp4, label %if.then5, label %if.end

if.then5:                                         ; preds = %if.else
  %3 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %3, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %4 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start, align 4
  %5 = load i32* %__new_size.addr, align 4
  %add.ptr = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %4, i32 %5
  call void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE15_M_erase_at_endEPSB_(%"class.std::vector"* %this1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr)
  br label %if.end

if.end:                                           ; preds = %if.then5, %if.else
  br label %if.end6

if.end6:                                          ; preds = %if.end, %if.then
  ret void
}

define linkonce_odr void @_ZN5boost8add_edgeINS_6detail12adj_list_genINS_14adjacency_listINS_4vecSES4_NS_9directedSENS_11no_propertyES6_S6_NS_5listSEEES4_S4_S5_S6_S6_S6_S7_E6configEEESt4pairINS_21directed_graph_helperIT_E15edge_descriptorEbENSD_17vertex_descriptorESH_RKNSD_18edge_property_typeERSE_(%"struct.std::pair.63"* noalias sret %agg.result, i32 %u, i32 %v, %"struct.boost::no_property"* %p, %"struct.boost::directed_graph_helper"* %g_) inlinehint {
entry:
  %u.addr = alloca i32, align 4
  %v.addr = alloca i32, align 4
  %p.addr = alloca %"struct.boost::no_property"*, align 4
  %g_.addr = alloca %"struct.boost::directed_graph_helper"*, align 4
  %g = alloca %"class.boost::adjacency_list"*, align 4
  %i = alloca %"class.__gnu_cxx::__normal_iterator", align 4
  %inserted = alloca i8, align 1
  %tmp = alloca %"class.boost::tuples::tuple.64", align 4
  %ref.tmp = alloca %"struct.std::pair.67", align 4
  %ref.tmp1 = alloca %"class.boost::detail::stored_edge_property", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %agg.tmp = alloca %"class.boost::detail::edge_desc_impl", align 4
  store i32 %u, i32* %u.addr, align 4
  store i32 %v, i32* %v.addr, align 4
  store %"struct.boost::no_property"* %p, %"struct.boost::no_property"** %p.addr, align 4
  store %"struct.boost::directed_graph_helper"* %g_, %"struct.boost::directed_graph_helper"** %g_.addr, align 4
  %0 = load %"struct.boost::directed_graph_helper"** %g_.addr, align 4
  %1 = bitcast %"struct.boost::directed_graph_helper"* %0 to %"class.boost::adjacency_list"*
  store %"class.boost::adjacency_list"* %1, %"class.boost::adjacency_list"** %g, align 4
  call void @_ZN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEC1Ev(%"class.__gnu_cxx::__normal_iterator"* %i)
  call void @_ZN5boost6tuples3tieIN9__gnu_cxx17__normal_iteratorIPNS_6detail20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEbEENS0_6detail10tie_mapperIT_T0_vvvvvvvvE4typeERSF_RSG_(%"class.boost::tuples::tuple.64"* sret %tmp, %"class.__gnu_cxx::__normal_iterator"* %i, i8* %inserted)
  %2 = load %"class.boost::adjacency_list"** %g, align 4
  %3 = bitcast %"class.boost::adjacency_list"* %2 to %"class.boost::vec_adj_list_impl"*
  %4 = load i32* %u.addr, align 4
  %call = call %"class.std::vector.21"* @_ZN5boost17vec_adj_list_implINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_6detail12adj_list_genIS6_S2_S2_S3_S4_S4_S4_S5_E6configENS_21directed_graph_helperISA_EEE13out_edge_listEj(%"class.boost::vec_adj_list_impl"* %3, i32 %4)
  %5 = load i32* %v.addr, align 4
  %6 = load %"struct.boost::no_property"** %p.addr, align 4
  call void @_ZN5boost6detail20stored_edge_propertyIjNS_11no_propertyEEC1EjRKS2_(%"class.boost::detail::stored_edge_property"* %ref.tmp1, i32 %5, %"struct.boost::no_property"* %6)
  invoke void @_ZN5boost12graph_detail4pushISt6vectorINS_6detail20stored_edge_propertyIjNS_11no_propertyEEESaIS6_EES6_EESt4pairINT_8iteratorEbERSA_RKT0_(%"struct.std::pair.67"* sret %ref.tmp, %"class.std::vector.21"* %call, %"class.boost::detail::stored_edge_property"* %ref.tmp1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %call3 = invoke %"class.boost::tuples::tuple.64"* @_ZN5boost6tuples5tupleIRN9__gnu_cxx17__normal_iteratorIPNS_6detail20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEERbNS0_9null_typeESF_SF_SF_SF_SF_SF_SF_EaSISC_bEERSG_RKSt4pairIT_T0_E(%"class.boost::tuples::tuple.64"* %tmp, %"struct.std::pair.67"* %ref.tmp)
          to label %invoke.cont2 unwind label %lpad

invoke.cont2:                                     ; preds = %invoke.cont
  call void @_ZN5boost6detail20stored_edge_propertyIjNS_11no_propertyEED1Ev(%"class.boost::detail::stored_edge_property"* %ref.tmp1)
  %7 = load i32* %u.addr, align 4
  %8 = load i32* %v.addr, align 4
  %call5 = call %"class.boost::detail::stored_edge_property"* @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEdeEv(%"class.__gnu_cxx::__normal_iterator"* %i)
  %call6 = call %"struct.boost::no_property"* @_ZN5boost6detail20stored_edge_propertyIjNS_11no_propertyEE12get_propertyEv(%"class.boost::detail::stored_edge_property"* %call5)
  %9 = bitcast %"struct.boost::no_property"* %call6 to i8*
  call void @_ZN5boost6detail14edge_desc_implINS_12directed_tagEjEC1EjjPKv(%"class.boost::detail::edge_desc_impl"* %agg.tmp, i32 %7, i32 %8, i8* %9)
  %10 = load i8* %inserted, align 1
  %tobool = trunc i8 %10 to i1
  call void @_ZSt9make_pairIN5boost6detail14edge_desc_implINS0_12directed_tagEjEEbESt4pairIT_T0_ES6_S7_(%"struct.std::pair.63"* sret %agg.result, %"class.boost::detail::edge_desc_impl"* byval align 4 %agg.tmp, i1 zeroext %tobool)
  ret void

lpad:                                             ; preds = %invoke.cont, %entry
  %11 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %12 = extractvalue { i8*, i32 } %11, 0
  store i8* %12, i8** %exn.slot
  %13 = extractvalue { i8*, i32 } %11, 1
  store i32 %13, i32* %ehselector.slot
  invoke void @_ZN5boost6detail20stored_edge_propertyIjNS_11no_propertyEED1Ev(%"class.boost::detail::stored_edge_property"* %ref.tmp1)
          to label %invoke.cont4 unwind label %terminate.lpad

invoke.cont4:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont4
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val7 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val7

terminate.lpad:                                   ; preds = %lpad
  %14 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost6tuples3tieIN9__gnu_cxx17__normal_iteratorIPNS_6detail20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEEbEENS0_6detail10tie_mapperIT_T0_vvvvvvvvE4typeERSF_RSG_(%"class.boost::tuples::tuple.64"* noalias sret %agg.result, %"class.__gnu_cxx::__normal_iterator"* %t0, i8* %t1) inlinehint {
entry:
  %t0.addr = alloca %"class.__gnu_cxx::__normal_iterator"*, align 4
  %t1.addr = alloca i8*, align 4
  store %"class.__gnu_cxx::__normal_iterator"* %t0, %"class.__gnu_cxx::__normal_iterator"** %t0.addr, align 4
  store i8* %t1, i8** %t1.addr, align 4
  %0 = load %"class.__gnu_cxx::__normal_iterator"** %t0.addr, align 4
  %1 = load i8** %t1.addr, align 4
  call void @_ZN5boost6tuples5tupleIRN9__gnu_cxx17__normal_iteratorIPNS_6detail20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEERbNS0_9null_typeESF_SF_SF_SF_SF_SF_SF_EC1ESD_SE_(%"class.boost::tuples::tuple.64"* %agg.result, %"class.__gnu_cxx::__normal_iterator"* %0, i8* %1)
  ret void
}

define linkonce_odr %"class.boost::tuples::tuple.64"* @_ZN5boost6tuples5tupleIRN9__gnu_cxx17__normal_iteratorIPNS_6detail20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEERbNS0_9null_typeESF_SF_SF_SF_SF_SF_SF_EaSISC_bEERSG_RKSt4pairIT_T0_E(%"class.boost::tuples::tuple.64"* %this, %"struct.std::pair.67"* %k) nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::tuples::tuple.64"*, align 4
  %k.addr = alloca %"struct.std::pair.67"*, align 4
  store %"class.boost::tuples::tuple.64"* %this, %"class.boost::tuples::tuple.64"** %this.addr, align 4
  store %"struct.std::pair.67"* %k, %"struct.std::pair.67"** %k.addr, align 4
  %this1 = load %"class.boost::tuples::tuple.64"** %this.addr
  %0 = bitcast %"class.boost::tuples::tuple.64"* %this1 to %"struct.boost::tuples::cons.65"*
  %head = getelementptr inbounds %"struct.boost::tuples::cons.65"* %0, i32 0, i32 0
  %ref = load %"class.__gnu_cxx::__normal_iterator"** %head, align 4
  %1 = load %"struct.std::pair.67"** %k.addr, align 4
  %first = getelementptr inbounds %"struct.std::pair.67"* %1, i32 0, i32 0
  %2 = bitcast %"class.__gnu_cxx::__normal_iterator"* %ref to i8*
  %3 = bitcast %"class.__gnu_cxx::__normal_iterator"* %first to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 4, i32 4, i1 false)
  %4 = load %"struct.std::pair.67"** %k.addr, align 4
  %second = getelementptr inbounds %"struct.std::pair.67"* %4, i32 0, i32 1
  %5 = load i8* %second, align 1
  %tobool = trunc i8 %5 to i1
  %6 = bitcast %"class.boost::tuples::tuple.64"* %this1 to %"struct.boost::tuples::cons.65"*
  %tail = getelementptr inbounds %"struct.boost::tuples::cons.65"* %6, i32 0, i32 1
  %head2 = getelementptr inbounds %"struct.boost::tuples::cons.66"* %tail, i32 0, i32 0
  %ref3 = load i8** %head2, align 4
  %frombool = zext i1 %tobool to i8
  store i8 %frombool, i8* %ref3, align 1
  ret %"class.boost::tuples::tuple.64"* %this1
}

define linkonce_odr void @_ZN5boost12graph_detail4pushISt6vectorINS_6detail20stored_edge_propertyIjNS_11no_propertyEEESaIS6_EES6_EESt4pairINT_8iteratorEbERSA_RKT0_(%"struct.std::pair.67"* noalias sret %agg.result, %"class.std::vector.21"* %c, %"class.boost::detail::stored_edge_property"* %v) {
entry:
  %c.addr = alloca %"class.std::vector.21"*, align 4
  %v.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %agg.tmp = alloca %"struct.boost::graph_detail::back_insertion_sequence_tag", align 4
  %ref.tmp = alloca %"struct.boost::graph_detail::vector_tag", align 4
  store %"class.std::vector.21"* %c, %"class.std::vector.21"** %c.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %v, %"class.boost::detail::stored_edge_property"** %v.addr, align 4
  %0 = load %"class.std::vector.21"** %c.addr, align 4
  %1 = load %"class.boost::detail::stored_edge_property"** %v.addr, align 4
  %2 = load %"class.std::vector.21"** %c.addr, align 4
  call void @_ZN5boost12graph_detail18container_categoryINS_6detail20stored_edge_propertyIjNS_11no_propertyEEESaIS5_EEENS0_10vector_tagERKSt6vectorIT_T0_E(%"struct.boost::graph_detail::vector_tag"* sret %ref.tmp, %"class.std::vector.21"* %2)
  %3 = bitcast %"struct.boost::graph_detail::vector_tag"* %ref.tmp to i8**
  %vtable = load i8** %3
  %vbase.offset.ptr = getelementptr i8* %vtable, i64 -28
  %4 = bitcast i8* %vbase.offset.ptr to i32*
  %vbase.offset = load i32* %4
  %5 = bitcast %"struct.boost::graph_detail::vector_tag"* %ref.tmp to i8*
  %add.ptr = getelementptr inbounds i8* %5, i32 %vbase.offset
  %6 = bitcast i8* %add.ptr to %"struct.boost::graph_detail::back_insertion_sequence_tag"*
  call void @_ZN5boost12graph_detail27back_insertion_sequence_tagC1ERKS1_(%"struct.boost::graph_detail::back_insertion_sequence_tag"* %agg.tmp, %"struct.boost::graph_detail::back_insertion_sequence_tag"* %6) nounwind
  call void @_ZN5boost12graph_detail13push_dispatchISt6vectorINS_6detail20stored_edge_propertyIjNS_11no_propertyEEESaIS6_EES6_EESt4pairINT_8iteratorEbERSA_RKT0_NS0_27back_insertion_sequence_tagE(%"struct.std::pair.67"* sret %agg.result, %"class.std::vector.21"* %0, %"class.boost::detail::stored_edge_property"* %1, %"struct.boost::graph_detail::back_insertion_sequence_tag"* %agg.tmp)
  ret void
}

define linkonce_odr void @_ZN5boost6detail20stored_edge_propertyIjNS_11no_propertyEEC1EjRKS2_(%"class.boost::detail::stored_edge_property"* %this, i32 %target, %"struct.boost::no_property"* %p) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %target.addr = alloca i32, align 4
  %p.addr = alloca %"struct.boost::no_property"*, align 4
  store %"class.boost::detail::stored_edge_property"* %this, %"class.boost::detail::stored_edge_property"** %this.addr, align 4
  store i32 %target, i32* %target.addr, align 4
  store %"struct.boost::no_property"* %p, %"struct.boost::no_property"** %p.addr, align 4
  %this1 = load %"class.boost::detail::stored_edge_property"** %this.addr
  %0 = load i32* %target.addr, align 4
  %1 = load %"struct.boost::no_property"** %p.addr
  call void @_ZN5boost6detail20stored_edge_propertyIjNS_11no_propertyEEC2EjRKS2_(%"class.boost::detail::stored_edge_property"* %this1, i32 %0, %"struct.boost::no_property"* %1)
  ret void
}

define linkonce_odr void @_ZSt9make_pairIN5boost6detail14edge_desc_implINS0_12directed_tagEjEEbESt4pairIT_T0_ES6_S7_(%"struct.std::pair.63"* noalias sret %agg.result, %"class.boost::detail::edge_desc_impl"* byval align 4 %__x, i1 zeroext %__y) inlinehint {
entry:
  %__y.addr = alloca i8, align 1
  %frombool = zext i1 %__y to i8
  store i8 %frombool, i8* %__y.addr, align 1
  call void @_ZNSt4pairIN5boost6detail14edge_desc_implINS0_12directed_tagEjEEbEC1ERKS4_RKb(%"struct.std::pair.63"* %agg.result, %"class.boost::detail::edge_desc_impl"* %__x, i8* %__y.addr)
  ret void
}

define linkonce_odr void @_ZNSt4pairIN5boost6detail14edge_desc_implINS0_12directed_tagEjEEbEC1ERKS4_RKb(%"struct.std::pair.63"* %this, %"class.boost::detail::edge_desc_impl"* %__a, i8* %__b) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.63"*, align 4
  %__a.addr = alloca %"class.boost::detail::edge_desc_impl"*, align 4
  %__b.addr = alloca i8*, align 4
  store %"struct.std::pair.63"* %this, %"struct.std::pair.63"** %this.addr, align 4
  store %"class.boost::detail::edge_desc_impl"* %__a, %"class.boost::detail::edge_desc_impl"** %__a.addr, align 4
  store i8* %__b, i8** %__b.addr, align 4
  %this1 = load %"struct.std::pair.63"** %this.addr
  %0 = load i8** %__b.addr
  %1 = load %"class.boost::detail::edge_desc_impl"** %__a.addr
  call void @_ZNSt4pairIN5boost6detail14edge_desc_implINS0_12directed_tagEjEEbEC2ERKS4_RKb(%"struct.std::pair.63"* %this1, %"class.boost::detail::edge_desc_impl"* %1, i8* %0)
  ret void
}

define linkonce_odr void @_ZNSt4pairIN5boost6detail14edge_desc_implINS0_12directed_tagEjEEbEC2ERKS4_RKb(%"struct.std::pair.63"* %this, %"class.boost::detail::edge_desc_impl"* %__a, i8* %__b) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.63"*, align 4
  %__a.addr = alloca %"class.boost::detail::edge_desc_impl"*, align 4
  %__b.addr = alloca i8*, align 4
  store %"struct.std::pair.63"* %this, %"struct.std::pair.63"** %this.addr, align 4
  store %"class.boost::detail::edge_desc_impl"* %__a, %"class.boost::detail::edge_desc_impl"** %__a.addr, align 4
  store i8* %__b, i8** %__b.addr, align 4
  %this1 = load %"struct.std::pair.63"** %this.addr
  %first = getelementptr inbounds %"struct.std::pair.63"* %this1, i32 0, i32 0
  %0 = load %"class.boost::detail::edge_desc_impl"** %__a.addr, align 4
  %1 = bitcast %"class.boost::detail::edge_desc_impl"* %first to i8*
  %2 = bitcast %"class.boost::detail::edge_desc_impl"* %0 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 12, i32 4, i1 false)
  %second = getelementptr inbounds %"struct.std::pair.63"* %this1, i32 0, i32 1
  %3 = load i8** %__b.addr, align 4
  %4 = load i8* %3, align 1
  %tobool = trunc i8 %4 to i1
  %frombool = zext i1 %tobool to i8
  store i8 %frombool, i8* %second, align 1
  ret void
}

define linkonce_odr void @_ZN5boost6detail20stored_edge_propertyIjNS_11no_propertyEEC2EjRKS2_(%"class.boost::detail::stored_edge_property"* %this, i32 %target, %"struct.boost::no_property"* %p) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %target.addr = alloca i32, align 4
  %p.addr = alloca %"struct.boost::no_property"*, align 4
  %ref.tmp = alloca %"struct.boost::no_property", align 1
  store %"class.boost::detail::stored_edge_property"* %this, %"class.boost::detail::stored_edge_property"** %this.addr, align 4
  store i32 %target, i32* %target.addr, align 4
  store %"struct.boost::no_property"* %p, %"struct.boost::no_property"** %p.addr, align 4
  %this1 = load %"class.boost::detail::stored_edge_property"** %this.addr
  %0 = bitcast %"class.boost::detail::stored_edge_property"* %this1 to %"class.boost::detail::stored_edge"*
  %1 = load i32* %target.addr, align 4
  call void @_ZN5boost6detail11stored_edgeIjEC2EjRKNS_11no_propertyE(%"class.boost::detail::stored_edge"* %0, i32 %1, %"struct.boost::no_property"* %ref.tmp)
  %m_property = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %this1, i32 0, i32 1
  %call = call noalias i8* @_Znwj(i32 1)
  %2 = bitcast i8* %call to %"struct.boost::no_property"*
  %3 = load %"struct.boost::no_property"** %p.addr, align 4
  call void @_ZNSt8auto_ptrIN5boost11no_propertyEEC1EPS1_(%"class.std::auto_ptr"* %m_property, %"struct.boost::no_property"* %2) nounwind
  ret void
}

define linkonce_odr void @_ZN5boost6detail11stored_edgeIjEC2EjRKNS_11no_propertyE(%"class.boost::detail::stored_edge"* %this, i32 %target, %"struct.boost::no_property"*) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::stored_edge"*, align 4
  %target.addr = alloca i32, align 4
  %.addr = alloca %"struct.boost::no_property"*, align 4
  store %"class.boost::detail::stored_edge"* %this, %"class.boost::detail::stored_edge"** %this.addr, align 4
  store i32 %target, i32* %target.addr, align 4
  store %"struct.boost::no_property"* %0, %"struct.boost::no_property"** %.addr, align 4
  %this1 = load %"class.boost::detail::stored_edge"** %this.addr
  %1 = bitcast %"class.boost::detail::stored_edge"* %this1 to %"struct.boost::equality_comparable1"*
  %m_target = getelementptr inbounds %"class.boost::detail::stored_edge"* %this1, i32 0, i32 0
  %2 = load i32* %target.addr, align 4
  store i32 %2, i32* %m_target, align 4
  ret void
}

define linkonce_odr void @_ZNSt8auto_ptrIN5boost11no_propertyEEC1EPS1_(%"class.std::auto_ptr"* %this, %"struct.boost::no_property"* %__p) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::auto_ptr"*, align 4
  %__p.addr = alloca %"struct.boost::no_property"*, align 4
  store %"class.std::auto_ptr"* %this, %"class.std::auto_ptr"** %this.addr, align 4
  store %"struct.boost::no_property"* %__p, %"struct.boost::no_property"** %__p.addr, align 4
  %this1 = load %"class.std::auto_ptr"** %this.addr
  %0 = load %"struct.boost::no_property"** %__p.addr, align 4
  call void @_ZNSt8auto_ptrIN5boost11no_propertyEEC2EPS1_(%"class.std::auto_ptr"* %this1, %"struct.boost::no_property"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZNSt8auto_ptrIN5boost11no_propertyEEC2EPS1_(%"class.std::auto_ptr"* %this, %"struct.boost::no_property"* %__p) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::auto_ptr"*, align 4
  %__p.addr = alloca %"struct.boost::no_property"*, align 4
  store %"class.std::auto_ptr"* %this, %"class.std::auto_ptr"** %this.addr, align 4
  store %"struct.boost::no_property"* %__p, %"struct.boost::no_property"** %__p.addr, align 4
  %this1 = load %"class.std::auto_ptr"** %this.addr
  %_M_ptr = getelementptr inbounds %"class.std::auto_ptr"* %this1, i32 0, i32 0
  %0 = load %"struct.boost::no_property"** %__p.addr, align 4
  store %"struct.boost::no_property"* %0, %"struct.boost::no_property"** %_M_ptr, align 4
  ret void
}

define linkonce_odr void @_ZN5boost12graph_detail13push_dispatchISt6vectorINS_6detail20stored_edge_propertyIjNS_11no_propertyEEESaIS6_EES6_EESt4pairINT_8iteratorEbERSA_RKT0_NS0_27back_insertion_sequence_tagE(%"struct.std::pair.67"* noalias sret %agg.result, %"class.std::vector.21"* %c, %"class.boost::detail::stored_edge_property"* %v, %"struct.boost::graph_detail::back_insertion_sequence_tag"*) {
entry:
  %c.addr = alloca %"class.std::vector.21"*, align 4
  %v.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator", align 4
  %agg.tmp1 = alloca %"class.__gnu_cxx::__normal_iterator", align 4
  store %"class.std::vector.21"* %c, %"class.std::vector.21"** %c.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %v, %"class.boost::detail::stored_edge_property"** %v.addr, align 4
  %1 = load %"class.std::vector.21"** %c.addr, align 4
  %2 = load %"class.boost::detail::stored_edge_property"** %v.addr, align 4
  call void @_ZNSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE9push_backERKS4_(%"class.std::vector.21"* %1, %"class.boost::detail::stored_edge_property"* %2)
  %3 = load %"class.std::vector.21"** %c.addr, align 4
  call void @_ZNSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE3endEv(%"class.__gnu_cxx::__normal_iterator"* sret %agg.tmp1, %"class.std::vector.21"* %3)
  call void @_ZN5boost5priorIN9__gnu_cxx17__normal_iteratorIPNS_6detail20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS6_SaIS6_EEEEEET_SC_(%"class.__gnu_cxx::__normal_iterator"* sret %agg.tmp, %"class.__gnu_cxx::__normal_iterator"* byval align 4 %agg.tmp1)
  call void @_ZSt9make_pairIN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEEbESt4pairIT_T0_ESD_SE_(%"struct.std::pair.67"* sret %agg.result, %"class.__gnu_cxx::__normal_iterator"* byval align 4 %agg.tmp, i1 zeroext true)
  ret void
}

define linkonce_odr void @_ZN5boost12graph_detail27back_insertion_sequence_tagC1ERKS1_(%"struct.boost::graph_detail::back_insertion_sequence_tag"* %this, %"struct.boost::graph_detail::back_insertion_sequence_tag"*) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::graph_detail::back_insertion_sequence_tag"*, align 4
  %.addr = alloca %"struct.boost::graph_detail::back_insertion_sequence_tag"*, align 4
  store %"struct.boost::graph_detail::back_insertion_sequence_tag"* %this, %"struct.boost::graph_detail::back_insertion_sequence_tag"** %this.addr, align 4
  store %"struct.boost::graph_detail::back_insertion_sequence_tag"* %0, %"struct.boost::graph_detail::back_insertion_sequence_tag"** %.addr, align 4
  %this1 = load %"struct.boost::graph_detail::back_insertion_sequence_tag"** %this.addr
  %1 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %this1 to %"struct.boost::graph_detail::container_tag"*
  %2 = load %"struct.boost::graph_detail::back_insertion_sequence_tag"** %.addr, align 4
  %3 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %2 to i8**
  %vtable = load i8** %3
  %vbase.offset.ptr = getelementptr i8* %vtable, i64 -12
  %4 = bitcast i8* %vbase.offset.ptr to i32*
  %vbase.offset = load i32* %4
  %5 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %2 to i8*
  %add.ptr = getelementptr inbounds i8* %5, i32 %vbase.offset
  %6 = bitcast i8* %add.ptr to %"struct.boost::graph_detail::container_tag"*
  %7 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %this1 to %"struct.boost::graph_detail::forward_container_tag"*
  %8 = load %"struct.boost::graph_detail::back_insertion_sequence_tag"** %.addr, align 4
  %9 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %8 to i8**
  %vtable2 = load i8** %9
  %vbase.offset.ptr3 = getelementptr i8* %vtable2, i64 -16
  %10 = bitcast i8* %vbase.offset.ptr3 to i32*
  %vbase.offset4 = load i32* %10
  %11 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %8 to i8*
  %add.ptr5 = getelementptr inbounds i8* %11, i32 %vbase.offset4
  %12 = bitcast i8* %add.ptr5 to %"struct.boost::graph_detail::forward_container_tag"*
  call void @_ZN5boost12graph_detail21forward_container_tagC2ERKS1_(%"struct.boost::graph_detail::forward_container_tag"* %7, i8** getelementptr inbounds ([6 x i8*]* @_ZTTN5boost12graph_detail27back_insertion_sequence_tagE, i64 0, i64 5), %"struct.boost::graph_detail::forward_container_tag"* %12) nounwind
  %13 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %this1 to %"struct.boost::graph_detail::sequence_tag"*
  %14 = load %"struct.boost::graph_detail::back_insertion_sequence_tag"** %.addr, align 4
  %15 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %14 to i8**
  %vtable6 = load i8** %15
  %vbase.offset.ptr7 = getelementptr i8* %vtable6, i64 -20
  %16 = bitcast i8* %vbase.offset.ptr7 to i32*
  %vbase.offset8 = load i32* %16
  %17 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %14 to i8*
  %add.ptr9 = getelementptr inbounds i8* %17, i32 %vbase.offset8
  %18 = bitcast i8* %add.ptr9 to %"struct.boost::graph_detail::sequence_tag"*
  call void @_ZN5boost12graph_detail12sequence_tagC2ERKS1_(%"struct.boost::graph_detail::sequence_tag"* %13, i8** getelementptr inbounds ([6 x i8*]* @_ZTTN5boost12graph_detail27back_insertion_sequence_tagE, i64 0, i64 3), %"struct.boost::graph_detail::sequence_tag"* %18) nounwind
  %19 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %this1 to i8***
  store i8** getelementptr inbounds ([5 x i8*]* @_ZTVN5boost12graph_detail27back_insertion_sequence_tagE, i64 1, i64 0), i8*** %19
  %20 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %this1 to i8***
  store i8** getelementptr inbounds ([5 x i8*]* @_ZTVN5boost12graph_detail27back_insertion_sequence_tagE, i64 1, i64 0), i8*** %20
  %21 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %this1 to i8***
  store i8** getelementptr inbounds ([5 x i8*]* @_ZTVN5boost12graph_detail27back_insertion_sequence_tagE, i64 1, i64 0), i8*** %21
  ret void
}

define linkonce_odr void @_ZN5boost12graph_detail18container_categoryINS_6detail20stored_edge_propertyIjNS_11no_propertyEEESaIS5_EEENS0_10vector_tagERKSt6vectorIT_T0_E(%"struct.boost::graph_detail::vector_tag"* noalias sret %agg.result, %"class.std::vector.21"*) nounwind {
entry:
  %.addr = alloca %"class.std::vector.21"*, align 4
  store %"class.std::vector.21"* %0, %"class.std::vector.21"** %.addr, align 4
  %1 = bitcast %"struct.boost::graph_detail::vector_tag"* %agg.result to i8*
  call void @llvm.memset.p0i8.i32(i8* %1, i8 0, i32 8, i32 4, i1 false)
  call void @_ZN5boost12graph_detail10vector_tagC1Ev(%"struct.boost::graph_detail::vector_tag"* %agg.result) nounwind
  ret void
}

declare void @llvm.memset.p0i8.i32(i8* nocapture, i8, i32, i32, i1) nounwind

define linkonce_odr void @_ZN5boost12graph_detail10vector_tagC1Ev(%"struct.boost::graph_detail::vector_tag"* %this) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::graph_detail::vector_tag"*, align 4
  store %"struct.boost::graph_detail::vector_tag"* %this, %"struct.boost::graph_detail::vector_tag"** %this.addr, align 4
  %this1 = load %"struct.boost::graph_detail::vector_tag"** %this.addr
  %0 = bitcast %"struct.boost::graph_detail::vector_tag"* %this1 to %"struct.boost::graph_detail::container_tag"*
  %1 = bitcast %"struct.boost::graph_detail::vector_tag"* %this1 to %"struct.boost::graph_detail::forward_container_tag"*
  call void @_ZN5boost12graph_detail21forward_container_tagC2Ev(%"struct.boost::graph_detail::forward_container_tag"* %1, i8** getelementptr inbounds ([17 x i8*]* @_ZTTN5boost12graph_detail10vector_tagE, i64 0, i64 11)) nounwind
  %2 = bitcast %"struct.boost::graph_detail::vector_tag"* %this1 to %"struct.boost::graph_detail::reversible_container_tag"*
  call void @_ZN5boost12graph_detail24reversible_container_tagC2Ev(%"struct.boost::graph_detail::reversible_container_tag"* %2, i8** getelementptr inbounds ([17 x i8*]* @_ZTTN5boost12graph_detail10vector_tagE, i64 0, i64 9)) nounwind
  %3 = bitcast %"struct.boost::graph_detail::vector_tag"* %this1 to %"struct.boost::graph_detail::random_access_container_tag"*
  call void @_ZN5boost12graph_detail27random_access_container_tagC2Ev(%"struct.boost::graph_detail::random_access_container_tag"* %3, i8** getelementptr inbounds ([17 x i8*]* @_ZTTN5boost12graph_detail10vector_tagE, i64 0, i64 6)) nounwind
  %4 = bitcast %"struct.boost::graph_detail::vector_tag"* %this1 to i8*
  %5 = getelementptr inbounds i8* %4, i64 4
  %6 = bitcast i8* %5 to %"struct.boost::graph_detail::sequence_tag"*
  call void @_ZN5boost12graph_detail12sequence_tagC2Ev(%"struct.boost::graph_detail::sequence_tag"* %6, i8** getelementptr inbounds ([17 x i8*]* @_ZTTN5boost12graph_detail10vector_tagE, i64 0, i64 15)) nounwind
  %7 = bitcast %"struct.boost::graph_detail::vector_tag"* %this1 to i8*
  %8 = getelementptr inbounds i8* %7, i64 4
  %9 = bitcast i8* %8 to %"struct.boost::graph_detail::back_insertion_sequence_tag"*
  call void @_ZN5boost12graph_detail27back_insertion_sequence_tagC2Ev(%"struct.boost::graph_detail::back_insertion_sequence_tag"* %9, i8** getelementptr inbounds ([17 x i8*]* @_ZTTN5boost12graph_detail10vector_tagE, i64 0, i64 12)) nounwind
  %10 = bitcast %"struct.boost::graph_detail::vector_tag"* %this1 to i8***
  store i8** getelementptr inbounds ([13 x i8*]* @_ZTVN5boost12graph_detail10vector_tagE, i64 0, i64 8), i8*** %10
  %11 = bitcast %"struct.boost::graph_detail::vector_tag"* %this1 to i8***
  store i8** getelementptr inbounds ([13 x i8*]* @_ZTVN5boost12graph_detail10vector_tagE, i64 0, i64 8), i8*** %11
  %12 = bitcast %"struct.boost::graph_detail::vector_tag"* %this1 to i8***
  store i8** getelementptr inbounds ([13 x i8*]* @_ZTVN5boost12graph_detail10vector_tagE, i64 0, i64 8), i8*** %12
  %13 = bitcast %"struct.boost::graph_detail::vector_tag"* %this1 to i8***
  store i8** getelementptr inbounds ([13 x i8*]* @_ZTVN5boost12graph_detail10vector_tagE, i64 0, i64 8), i8*** %13
  %14 = bitcast %"struct.boost::graph_detail::vector_tag"* %this1 to i8*
  %add.ptr = getelementptr inbounds i8* %14, i32 4
  %15 = bitcast i8* %add.ptr to i8***
  store i8** getelementptr inbounds ([13 x i8*]* @_ZTVN5boost12graph_detail10vector_tagE, i64 1, i64 0), i8*** %15
  %16 = bitcast %"struct.boost::graph_detail::vector_tag"* %this1 to i8*
  %add.ptr2 = getelementptr inbounds i8* %16, i32 4
  %17 = bitcast i8* %add.ptr2 to i8***
  store i8** getelementptr inbounds ([13 x i8*]* @_ZTVN5boost12graph_detail10vector_tagE, i64 1, i64 0), i8*** %17
  ret void
}

define linkonce_odr void @_ZN5boost12graph_detail21forward_container_tagC2Ev(%"struct.boost::graph_detail::forward_container_tag"* %this, i8** %vtt) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::graph_detail::forward_container_tag"*, align 4
  %vtt.addr = alloca i8**, align 4
  store %"struct.boost::graph_detail::forward_container_tag"* %this, %"struct.boost::graph_detail::forward_container_tag"** %this.addr, align 4
  store i8** %vtt, i8*** %vtt.addr, align 4
  %this1 = load %"struct.boost::graph_detail::forward_container_tag"** %this.addr
  %vtt2 = load i8*** %vtt.addr
  %0 = load i8** %vtt2
  %1 = bitcast %"struct.boost::graph_detail::forward_container_tag"* %this1 to i8**
  store i8* %0, i8** %1
  ret void
}

define linkonce_odr void @_ZN5boost12graph_detail24reversible_container_tagC2Ev(%"struct.boost::graph_detail::reversible_container_tag"* %this, i8** %vtt) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::graph_detail::reversible_container_tag"*, align 4
  %vtt.addr = alloca i8**, align 4
  store %"struct.boost::graph_detail::reversible_container_tag"* %this, %"struct.boost::graph_detail::reversible_container_tag"** %this.addr, align 4
  store i8** %vtt, i8*** %vtt.addr, align 4
  %this1 = load %"struct.boost::graph_detail::reversible_container_tag"** %this.addr
  %vtt2 = load i8*** %vtt.addr
  %0 = load i8** %vtt2
  %1 = bitcast %"struct.boost::graph_detail::reversible_container_tag"* %this1 to i8**
  store i8* %0, i8** %1
  %2 = getelementptr inbounds i8** %vtt2, i64 1
  %3 = load i8** %2
  %4 = bitcast %"struct.boost::graph_detail::reversible_container_tag"* %this1 to i8**
  %vtable = load i8** %4
  %vbase.offset.ptr = getelementptr i8* %vtable, i64 -16
  %5 = bitcast i8* %vbase.offset.ptr to i32*
  %vbase.offset = load i32* %5
  %6 = bitcast %"struct.boost::graph_detail::reversible_container_tag"* %this1 to i8*
  %add.ptr = getelementptr inbounds i8* %6, i32 %vbase.offset
  %7 = bitcast i8* %add.ptr to i8**
  store i8* %3, i8** %7
  ret void
}

define linkonce_odr void @_ZN5boost12graph_detail27random_access_container_tagC2Ev(%"struct.boost::graph_detail::random_access_container_tag"* %this, i8** %vtt) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::graph_detail::random_access_container_tag"*, align 4
  %vtt.addr = alloca i8**, align 4
  store %"struct.boost::graph_detail::random_access_container_tag"* %this, %"struct.boost::graph_detail::random_access_container_tag"** %this.addr, align 4
  store i8** %vtt, i8*** %vtt.addr, align 4
  %this1 = load %"struct.boost::graph_detail::random_access_container_tag"** %this.addr
  %vtt2 = load i8*** %vtt.addr
  %0 = load i8** %vtt2
  %1 = bitcast %"struct.boost::graph_detail::random_access_container_tag"* %this1 to i8**
  store i8* %0, i8** %1
  %2 = getelementptr inbounds i8** %vtt2, i64 1
  %3 = load i8** %2
  %4 = bitcast %"struct.boost::graph_detail::random_access_container_tag"* %this1 to i8**
  %vtable = load i8** %4
  %vbase.offset.ptr = getelementptr i8* %vtable, i64 -20
  %5 = bitcast i8* %vbase.offset.ptr to i32*
  %vbase.offset = load i32* %5
  %6 = bitcast %"struct.boost::graph_detail::random_access_container_tag"* %this1 to i8*
  %add.ptr = getelementptr inbounds i8* %6, i32 %vbase.offset
  %7 = bitcast i8* %add.ptr to i8**
  store i8* %3, i8** %7
  %8 = getelementptr inbounds i8** %vtt2, i64 2
  %9 = load i8** %8
  %10 = bitcast %"struct.boost::graph_detail::random_access_container_tag"* %this1 to i8**
  %vtable3 = load i8** %10
  %vbase.offset.ptr4 = getelementptr i8* %vtable3, i64 -16
  %11 = bitcast i8* %vbase.offset.ptr4 to i32*
  %vbase.offset5 = load i32* %11
  %12 = bitcast %"struct.boost::graph_detail::random_access_container_tag"* %this1 to i8*
  %add.ptr6 = getelementptr inbounds i8* %12, i32 %vbase.offset5
  %13 = bitcast i8* %add.ptr6 to i8**
  store i8* %9, i8** %13
  ret void
}

define linkonce_odr void @_ZN5boost12graph_detail12sequence_tagC2Ev(%"struct.boost::graph_detail::sequence_tag"* %this, i8** %vtt) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::graph_detail::sequence_tag"*, align 4
  %vtt.addr = alloca i8**, align 4
  store %"struct.boost::graph_detail::sequence_tag"* %this, %"struct.boost::graph_detail::sequence_tag"** %this.addr, align 4
  store i8** %vtt, i8*** %vtt.addr, align 4
  %this1 = load %"struct.boost::graph_detail::sequence_tag"** %this.addr
  %vtt2 = load i8*** %vtt.addr
  %0 = load i8** %vtt2
  %1 = bitcast %"struct.boost::graph_detail::sequence_tag"* %this1 to i8**
  store i8* %0, i8** %1
  %2 = getelementptr inbounds i8** %vtt2, i64 1
  %3 = load i8** %2
  %4 = bitcast %"struct.boost::graph_detail::sequence_tag"* %this1 to i8**
  %vtable = load i8** %4
  %vbase.offset.ptr = getelementptr i8* %vtable, i64 -16
  %5 = bitcast i8* %vbase.offset.ptr to i32*
  %vbase.offset = load i32* %5
  %6 = bitcast %"struct.boost::graph_detail::sequence_tag"* %this1 to i8*
  %add.ptr = getelementptr inbounds i8* %6, i32 %vbase.offset
  %7 = bitcast i8* %add.ptr to i8**
  store i8* %3, i8** %7
  ret void
}

define linkonce_odr void @_ZN5boost12graph_detail27back_insertion_sequence_tagC2Ev(%"struct.boost::graph_detail::back_insertion_sequence_tag"* %this, i8** %vtt) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::graph_detail::back_insertion_sequence_tag"*, align 4
  %vtt.addr = alloca i8**, align 4
  store %"struct.boost::graph_detail::back_insertion_sequence_tag"* %this, %"struct.boost::graph_detail::back_insertion_sequence_tag"** %this.addr, align 4
  store i8** %vtt, i8*** %vtt.addr, align 4
  %this1 = load %"struct.boost::graph_detail::back_insertion_sequence_tag"** %this.addr
  %vtt2 = load i8*** %vtt.addr
  %0 = load i8** %vtt2
  %1 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %this1 to i8**
  store i8* %0, i8** %1
  %2 = getelementptr inbounds i8** %vtt2, i64 1
  %3 = load i8** %2
  %4 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %this1 to i8**
  %vtable = load i8** %4
  %vbase.offset.ptr = getelementptr i8* %vtable, i64 -20
  %5 = bitcast i8* %vbase.offset.ptr to i32*
  %vbase.offset = load i32* %5
  %6 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %this1 to i8*
  %add.ptr = getelementptr inbounds i8* %6, i32 %vbase.offset
  %7 = bitcast i8* %add.ptr to i8**
  store i8* %3, i8** %7
  %8 = getelementptr inbounds i8** %vtt2, i64 2
  %9 = load i8** %8
  %10 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %this1 to i8**
  %vtable3 = load i8** %10
  %vbase.offset.ptr4 = getelementptr i8* %vtable3, i64 -16
  %11 = bitcast i8* %vbase.offset.ptr4 to i32*
  %vbase.offset5 = load i32* %11
  %12 = bitcast %"struct.boost::graph_detail::back_insertion_sequence_tag"* %this1 to i8*
  %add.ptr6 = getelementptr inbounds i8* %12, i32 %vbase.offset5
  %13 = bitcast i8* %add.ptr6 to i8**
  store i8* %9, i8** %13
  ret void
}

define linkonce_odr void @_ZN5boost12graph_detail21forward_container_tagC2ERKS1_(%"struct.boost::graph_detail::forward_container_tag"* %this, i8** %vtt, %"struct.boost::graph_detail::forward_container_tag"*) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::graph_detail::forward_container_tag"*, align 4
  %vtt.addr = alloca i8**, align 4
  %.addr = alloca %"struct.boost::graph_detail::forward_container_tag"*, align 4
  store %"struct.boost::graph_detail::forward_container_tag"* %this, %"struct.boost::graph_detail::forward_container_tag"** %this.addr, align 4
  store i8** %vtt, i8*** %vtt.addr, align 4
  store %"struct.boost::graph_detail::forward_container_tag"* %0, %"struct.boost::graph_detail::forward_container_tag"** %.addr, align 4
  %this1 = load %"struct.boost::graph_detail::forward_container_tag"** %this.addr
  %vtt2 = load i8*** %vtt.addr
  %1 = load i8** %vtt2
  %2 = bitcast %"struct.boost::graph_detail::forward_container_tag"* %this1 to i8**
  store i8* %1, i8** %2
  ret void
}

define linkonce_odr void @_ZN5boost12graph_detail12sequence_tagC2ERKS1_(%"struct.boost::graph_detail::sequence_tag"* %this, i8** %vtt, %"struct.boost::graph_detail::sequence_tag"*) unnamed_addr nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::graph_detail::sequence_tag"*, align 4
  %vtt.addr = alloca i8**, align 4
  %.addr = alloca %"struct.boost::graph_detail::sequence_tag"*, align 4
  store %"struct.boost::graph_detail::sequence_tag"* %this, %"struct.boost::graph_detail::sequence_tag"** %this.addr, align 4
  store i8** %vtt, i8*** %vtt.addr, align 4
  store %"struct.boost::graph_detail::sequence_tag"* %0, %"struct.boost::graph_detail::sequence_tag"** %.addr, align 4
  %this1 = load %"struct.boost::graph_detail::sequence_tag"** %this.addr
  %vtt2 = load i8*** %vtt.addr
  %1 = load i8** %vtt2
  %2 = bitcast %"struct.boost::graph_detail::sequence_tag"* %this1 to i8**
  store i8* %1, i8** %2
  %3 = getelementptr inbounds i8** %vtt2, i64 1
  %4 = load i8** %3
  %5 = bitcast %"struct.boost::graph_detail::sequence_tag"* %this1 to i8**
  %vtable = load i8** %5
  %vbase.offset.ptr = getelementptr i8* %vtable, i64 -16
  %6 = bitcast i8* %vbase.offset.ptr to i32*
  %vbase.offset = load i32* %6
  %7 = bitcast %"struct.boost::graph_detail::sequence_tag"* %this1 to i8*
  %add.ptr = getelementptr inbounds i8* %7, i32 %vbase.offset
  %8 = bitcast i8* %add.ptr to i8**
  store i8* %4, i8** %8
  ret void
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE9push_backERKS4_(%"class.std::vector.21"* %this, %"class.boost::detail::stored_edge_property"* %__x) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.21"*, align 4
  %__x.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator", align 4
  store %"class.std::vector.21"* %this, %"class.std::vector.21"** %this.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__x, %"class.boost::detail::stored_edge_property"** %__x.addr, align 4
  %this1 = load %"class.std::vector.21"** %this.addr
  %0 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.22"* %0, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl, i32 0, i32 1
  %1 = load %"class.boost::detail::stored_edge_property"** %_M_finish, align 4
  %2 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base.22"* %2, i32 0, i32 0
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl2, i32 0, i32 2
  %3 = load %"class.boost::detail::stored_edge_property"** %_M_end_of_storage, align 4
  %cmp = icmp ne %"class.boost::detail::stored_edge_property"* %1, %3
  br i1 %cmp, label %if.then, label %if.else

if.then:                                          ; preds = %entry
  %4 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl3 = getelementptr inbounds %"struct.std::_Vector_base.22"* %4, i32 0, i32 0
  %5 = bitcast %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl3 to %"class.__gnu_cxx::new_allocator.24"*
  %6 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl4 = getelementptr inbounds %"struct.std::_Vector_base.22"* %6, i32 0, i32 0
  %_M_finish5 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl4, i32 0, i32 1
  %7 = load %"class.boost::detail::stored_edge_property"** %_M_finish5, align 4
  %8 = load %"class.boost::detail::stored_edge_property"** %__x.addr, align 4
  call void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEEE9constructEPS5_RKS5_(%"class.__gnu_cxx::new_allocator.24"* %5, %"class.boost::detail::stored_edge_property"* %7, %"class.boost::detail::stored_edge_property"* %8)
  %9 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl6 = getelementptr inbounds %"struct.std::_Vector_base.22"* %9, i32 0, i32 0
  %_M_finish7 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl6, i32 0, i32 1
  %10 = load %"class.boost::detail::stored_edge_property"** %_M_finish7, align 4
  %incdec.ptr = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %10, i32 1
  store %"class.boost::detail::stored_edge_property"* %incdec.ptr, %"class.boost::detail::stored_edge_property"** %_M_finish7, align 4
  br label %if.end

if.else:                                          ; preds = %entry
  call void @_ZNSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE3endEv(%"class.__gnu_cxx::__normal_iterator"* sret %agg.tmp, %"class.std::vector.21"* %this1)
  %11 = load %"class.boost::detail::stored_edge_property"** %__x.addr, align 4
  call void @_ZNSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS4_S6_EERKS4_(%"class.std::vector.21"* %this1, %"class.__gnu_cxx::__normal_iterator"* byval align 4 %agg.tmp, %"class.boost::detail::stored_edge_property"* %11)
  br label %if.end

if.end:                                           ; preds = %if.else, %if.then
  ret void
}

define linkonce_odr void @_ZSt9make_pairIN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEEbESt4pairIT_T0_ESD_SE_(%"struct.std::pair.67"* noalias sret %agg.result, %"class.__gnu_cxx::__normal_iterator"* byval align 4 %__x, i1 zeroext %__y) inlinehint {
entry:
  %__y.addr = alloca i8, align 1
  %frombool = zext i1 %__y to i8
  store i8 %frombool, i8* %__y.addr, align 1
  call void @_ZNSt4pairIN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEEbEC1ERKSB_RKb(%"struct.std::pair.67"* %agg.result, %"class.__gnu_cxx::__normal_iterator"* %__x, i8* %__y.addr)
  ret void
}

define linkonce_odr void @_ZN5boost5priorIN9__gnu_cxx17__normal_iteratorIPNS_6detail20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS6_SaIS6_EEEEEET_SC_(%"class.__gnu_cxx::__normal_iterator"* noalias sret %agg.result, %"class.__gnu_cxx::__normal_iterator"* byval align 4 %x) inlinehint {
entry:
  %call = call %"class.__gnu_cxx::__normal_iterator"* @_ZN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEmmEv(%"class.__gnu_cxx::__normal_iterator"* %x)
  %0 = bitcast %"class.__gnu_cxx::__normal_iterator"* %agg.result to i8*
  %1 = bitcast %"class.__gnu_cxx::__normal_iterator"* %call to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 4, i32 4, i1 false)
  ret void
}

define linkonce_odr %"class.__gnu_cxx::__normal_iterator"* @_ZN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEmmEv(%"class.__gnu_cxx::__normal_iterator"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator"*, align 4
  store %"class.__gnu_cxx::__normal_iterator"* %this, %"class.__gnu_cxx::__normal_iterator"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator"** %this.addr
  %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator"* %this1, i32 0, i32 0
  %0 = load %"class.boost::detail::stored_edge_property"** %_M_current, align 4
  %incdec.ptr = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %0, i32 -1
  store %"class.boost::detail::stored_edge_property"* %incdec.ptr, %"class.boost::detail::stored_edge_property"** %_M_current, align 4
  ret %"class.__gnu_cxx::__normal_iterator"* %this1
}

define linkonce_odr void @_ZNSt4pairIN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEEbEC1ERKSB_RKb(%"struct.std::pair.67"* %this, %"class.__gnu_cxx::__normal_iterator"* %__a, i8* %__b) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.67"*, align 4
  %__a.addr = alloca %"class.__gnu_cxx::__normal_iterator"*, align 4
  %__b.addr = alloca i8*, align 4
  store %"struct.std::pair.67"* %this, %"struct.std::pair.67"** %this.addr, align 4
  store %"class.__gnu_cxx::__normal_iterator"* %__a, %"class.__gnu_cxx::__normal_iterator"** %__a.addr, align 4
  store i8* %__b, i8** %__b.addr, align 4
  %this1 = load %"struct.std::pair.67"** %this.addr
  %0 = load i8** %__b.addr
  %1 = load %"class.__gnu_cxx::__normal_iterator"** %__a.addr
  call void @_ZNSt4pairIN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEEbEC2ERKSB_RKb(%"struct.std::pair.67"* %this1, %"class.__gnu_cxx::__normal_iterator"* %1, i8* %0)
  ret void
}

define linkonce_odr void @_ZNSt4pairIN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEEbEC2ERKSB_RKb(%"struct.std::pair.67"* %this, %"class.__gnu_cxx::__normal_iterator"* %__a, i8* %__b) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.67"*, align 4
  %__a.addr = alloca %"class.__gnu_cxx::__normal_iterator"*, align 4
  %__b.addr = alloca i8*, align 4
  store %"struct.std::pair.67"* %this, %"struct.std::pair.67"** %this.addr, align 4
  store %"class.__gnu_cxx::__normal_iterator"* %__a, %"class.__gnu_cxx::__normal_iterator"** %__a.addr, align 4
  store i8* %__b, i8** %__b.addr, align 4
  %this1 = load %"struct.std::pair.67"** %this.addr
  %first = getelementptr inbounds %"struct.std::pair.67"* %this1, i32 0, i32 0
  %0 = load %"class.__gnu_cxx::__normal_iterator"** %__a.addr, align 4
  %1 = bitcast %"class.__gnu_cxx::__normal_iterator"* %first to i8*
  %2 = bitcast %"class.__gnu_cxx::__normal_iterator"* %0 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 4, i32 4, i1 false)
  %second = getelementptr inbounds %"struct.std::pair.67"* %this1, i32 0, i32 1
  %3 = load i8** %__b.addr, align 4
  %4 = load i8* %3, align 1
  %tobool = trunc i8 %4 to i1
  %frombool = zext i1 %tobool to i8
  store i8 %frombool, i8* %second, align 1
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEEE9constructEPS5_RKS5_(%"class.__gnu_cxx::new_allocator.24"* %this, %"class.boost::detail::stored_edge_property"* %__p, %"class.boost::detail::stored_edge_property"* %__val) align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.24"*, align 4
  %__p.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__val.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.__gnu_cxx::new_allocator.24"* %this, %"class.__gnu_cxx::new_allocator.24"** %this.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__p, %"class.boost::detail::stored_edge_property"** %__p.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__val, %"class.boost::detail::stored_edge_property"** %__val.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.24"** %this.addr
  %0 = load %"class.boost::detail::stored_edge_property"** %__p.addr, align 4
  %1 = bitcast %"class.boost::detail::stored_edge_property"* %0 to i8*
  %new.isnull = icmp eq i8* %1, null
  br i1 %new.isnull, label %new.cont, label %new.notnull

new.notnull:                                      ; preds = %entry
  %2 = bitcast i8* %1 to %"class.boost::detail::stored_edge_property"*
  %3 = load %"class.boost::detail::stored_edge_property"** %__val.addr, align 4
  call void @_ZN5boost6detail20stored_edge_propertyIjNS_11no_propertyEEC1ERKS3_(%"class.boost::detail::stored_edge_property"* %2, %"class.boost::detail::stored_edge_property"* %3)
  br label %new.cont

new.cont:                                         ; preds = %new.notnull, %entry
  %4 = phi %"class.boost::detail::stored_edge_property"* [ %2, %new.notnull ], [ null, %entry ]
  ret void
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS4_S6_EERKS4_(%"class.std::vector.21"* %this, %"class.__gnu_cxx::__normal_iterator"* byval align 4 %__position, %"class.boost::detail::stored_edge_property"* %__x) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.21"*, align 4
  %__x.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__x_copy = alloca %"class.boost::detail::stored_edge_property", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %__len = alloca i32, align 4
  %__elems_before = alloca i32, align 4
  %ref.tmp = alloca %"class.__gnu_cxx::__normal_iterator", align 4
  %__new_start = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__new_finish = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.std::vector.21"* %this, %"class.std::vector.21"** %this.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__x, %"class.boost::detail::stored_edge_property"** %__x.addr, align 4
  %this1 = load %"class.std::vector.21"** %this.addr
  %0 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.22"* %0, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl, i32 0, i32 1
  %1 = load %"class.boost::detail::stored_edge_property"** %_M_finish, align 4
  %2 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base.22"* %2, i32 0, i32 0
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl2, i32 0, i32 2
  %3 = load %"class.boost::detail::stored_edge_property"** %_M_end_of_storage, align 4
  %cmp = icmp ne %"class.boost::detail::stored_edge_property"* %1, %3
  br i1 %cmp, label %if.then, label %if.else

if.then:                                          ; preds = %entry
  %4 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl3 = getelementptr inbounds %"struct.std::_Vector_base.22"* %4, i32 0, i32 0
  %5 = bitcast %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl3 to %"class.__gnu_cxx::new_allocator.24"*
  %6 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl4 = getelementptr inbounds %"struct.std::_Vector_base.22"* %6, i32 0, i32 0
  %_M_finish5 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl4, i32 0, i32 1
  %7 = load %"class.boost::detail::stored_edge_property"** %_M_finish5, align 4
  %8 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl6 = getelementptr inbounds %"struct.std::_Vector_base.22"* %8, i32 0, i32 0
  %_M_finish7 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl6, i32 0, i32 1
  %9 = load %"class.boost::detail::stored_edge_property"** %_M_finish7, align 4
  %add.ptr = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %9, i32 -1
  call void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEEE9constructEPS5_RKS5_(%"class.__gnu_cxx::new_allocator.24"* %5, %"class.boost::detail::stored_edge_property"* %7, %"class.boost::detail::stored_edge_property"* %add.ptr)
  %10 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl8 = getelementptr inbounds %"struct.std::_Vector_base.22"* %10, i32 0, i32 0
  %_M_finish9 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl8, i32 0, i32 1
  %11 = load %"class.boost::detail::stored_edge_property"** %_M_finish9, align 4
  %incdec.ptr = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %11, i32 1
  store %"class.boost::detail::stored_edge_property"* %incdec.ptr, %"class.boost::detail::stored_edge_property"** %_M_finish9, align 4
  %12 = load %"class.boost::detail::stored_edge_property"** %__x.addr, align 4
  call void @_ZN5boost6detail20stored_edge_propertyIjNS_11no_propertyEEC1ERKS3_(%"class.boost::detail::stored_edge_property"* %__x_copy, %"class.boost::detail::stored_edge_property"* %12)
  %call = invoke %"class.boost::detail::stored_edge_property"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator"* %__position)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %if.then
  %13 = load %"class.boost::detail::stored_edge_property"** %call
  %14 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl10 = getelementptr inbounds %"struct.std::_Vector_base.22"* %14, i32 0, i32 0
  %_M_finish11 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl10, i32 0, i32 1
  %15 = load %"class.boost::detail::stored_edge_property"** %_M_finish11, align 4
  %add.ptr12 = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %15, i32 -2
  %16 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl13 = getelementptr inbounds %"struct.std::_Vector_base.22"* %16, i32 0, i32 0
  %_M_finish14 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl13, i32 0, i32 1
  %17 = load %"class.boost::detail::stored_edge_property"** %_M_finish14, align 4
  %add.ptr15 = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %17, i32 -1
  %call17 = invoke %"class.boost::detail::stored_edge_property"* @_ZSt13copy_backwardIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEES5_ET0_T_S7_S6_(%"class.boost::detail::stored_edge_property"* %13, %"class.boost::detail::stored_edge_property"* %add.ptr12, %"class.boost::detail::stored_edge_property"* %add.ptr15)
          to label %invoke.cont16 unwind label %lpad

invoke.cont16:                                    ; preds = %invoke.cont
  %call19 = invoke %"class.boost::detail::stored_edge_property"* @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEdeEv(%"class.__gnu_cxx::__normal_iterator"* %__position)
          to label %invoke.cont18 unwind label %lpad

invoke.cont18:                                    ; preds = %invoke.cont16
  %call21 = invoke %"class.boost::detail::stored_edge_property"* @_ZN5boost6detail20stored_edge_propertyIjNS_11no_propertyEEaSERKS3_(%"class.boost::detail::stored_edge_property"* %call19, %"class.boost::detail::stored_edge_property"* %__x_copy)
          to label %invoke.cont20 unwind label %lpad

invoke.cont20:                                    ; preds = %invoke.cont18
  call void @_ZN5boost6detail20stored_edge_propertyIjNS_11no_propertyEED1Ev(%"class.boost::detail::stored_edge_property"* %__x_copy)
  br label %if.end75

lpad:                                             ; preds = %invoke.cont18, %invoke.cont16, %invoke.cont, %if.then
  %18 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %19 = extractvalue { i8*, i32 } %18, 0
  store i8* %19, i8** %exn.slot
  %20 = extractvalue { i8*, i32 } %18, 1
  store i32 %20, i32* %ehselector.slot
  invoke void @_ZN5boost6detail20stored_edge_propertyIjNS_11no_propertyEED1Ev(%"class.boost::detail::stored_edge_property"* %__x_copy)
          to label %invoke.cont22 unwind label %terminate.lpad

invoke.cont22:                                    ; preds = %lpad
  br label %eh.resume

if.else:                                          ; preds = %entry
  %call23 = call i32 @_ZNKSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE12_M_check_lenEjPKc(%"class.std::vector.21"* %this1, i32 1, i8* getelementptr inbounds ([22 x i8]* @.str15, i32 0, i32 0))
  store i32 %call23, i32* %__len, align 4
  call void @_ZNSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE5beginEv(%"class.__gnu_cxx::__normal_iterator"* sret %ref.tmp, %"class.std::vector.21"* %this1)
  %call24 = call i32 @_ZN9__gnu_cxxmiIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSD_SG_(%"class.__gnu_cxx::__normal_iterator"* %__position, %"class.__gnu_cxx::__normal_iterator"* %ref.tmp)
  store i32 %call24, i32* %__elems_before, align 4
  %21 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %22 = load i32* %__len, align 4
  %call25 = call %"class.boost::detail::stored_edge_property"* @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE11_M_allocateEj(%"struct.std::_Vector_base.22"* %21, i32 %22)
  store %"class.boost::detail::stored_edge_property"* %call25, %"class.boost::detail::stored_edge_property"** %__new_start, align 4
  %23 = load %"class.boost::detail::stored_edge_property"** %__new_start, align 4
  store %"class.boost::detail::stored_edge_property"* %23, %"class.boost::detail::stored_edge_property"** %__new_finish, align 4
  %24 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl26 = getelementptr inbounds %"struct.std::_Vector_base.22"* %24, i32 0, i32 0
  %25 = bitcast %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl26 to %"class.__gnu_cxx::new_allocator.24"*
  %26 = load %"class.boost::detail::stored_edge_property"** %__new_start, align 4
  %27 = load i32* %__elems_before, align 4
  %add.ptr27 = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %26, i32 %27
  %28 = load %"class.boost::detail::stored_edge_property"** %__x.addr, align 4
  invoke void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEEE9constructEPS5_RKS5_(%"class.__gnu_cxx::new_allocator.24"* %25, %"class.boost::detail::stored_edge_property"* %add.ptr27, %"class.boost::detail::stored_edge_property"* %28)
          to label %invoke.cont29 unwind label %lpad28

invoke.cont29:                                    ; preds = %if.else
  store %"class.boost::detail::stored_edge_property"* null, %"class.boost::detail::stored_edge_property"** %__new_finish, align 4
  %29 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl30 = getelementptr inbounds %"struct.std::_Vector_base.22"* %29, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl30, i32 0, i32 0
  %30 = load %"class.boost::detail::stored_edge_property"** %_M_start, align 4
  %call32 = invoke %"class.boost::detail::stored_edge_property"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator"* %__position)
          to label %invoke.cont31 unwind label %lpad28

invoke.cont31:                                    ; preds = %invoke.cont29
  %31 = load %"class.boost::detail::stored_edge_property"** %call32
  %32 = load %"class.boost::detail::stored_edge_property"** %__new_start, align 4
  %33 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %call34 = invoke %"class.std::allocator.23"* @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.22"* %33)
          to label %invoke.cont33 unwind label %lpad28

invoke.cont33:                                    ; preds = %invoke.cont31
  %call36 = invoke %"class.boost::detail::stored_edge_property"* @_ZSt22__uninitialized_move_aIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEES5_SaIS4_EET0_T_S8_S7_RT1_(%"class.boost::detail::stored_edge_property"* %30, %"class.boost::detail::stored_edge_property"* %31, %"class.boost::detail::stored_edge_property"* %32, %"class.std::allocator.23"* %call34)
          to label %invoke.cont35 unwind label %lpad28

invoke.cont35:                                    ; preds = %invoke.cont33
  store %"class.boost::detail::stored_edge_property"* %call36, %"class.boost::detail::stored_edge_property"** %__new_finish, align 4
  %34 = load %"class.boost::detail::stored_edge_property"** %__new_finish, align 4
  %incdec.ptr37 = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %34, i32 1
  store %"class.boost::detail::stored_edge_property"* %incdec.ptr37, %"class.boost::detail::stored_edge_property"** %__new_finish, align 4
  %call39 = invoke %"class.boost::detail::stored_edge_property"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator"* %__position)
          to label %invoke.cont38 unwind label %lpad28

invoke.cont38:                                    ; preds = %invoke.cont35
  %35 = load %"class.boost::detail::stored_edge_property"** %call39
  %36 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl40 = getelementptr inbounds %"struct.std::_Vector_base.22"* %36, i32 0, i32 0
  %_M_finish41 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl40, i32 0, i32 1
  %37 = load %"class.boost::detail::stored_edge_property"** %_M_finish41, align 4
  %38 = load %"class.boost::detail::stored_edge_property"** %__new_finish, align 4
  %39 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %call43 = invoke %"class.std::allocator.23"* @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.22"* %39)
          to label %invoke.cont42 unwind label %lpad28

invoke.cont42:                                    ; preds = %invoke.cont38
  %call45 = invoke %"class.boost::detail::stored_edge_property"* @_ZSt22__uninitialized_move_aIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEES5_SaIS4_EET0_T_S8_S7_RT1_(%"class.boost::detail::stored_edge_property"* %35, %"class.boost::detail::stored_edge_property"* %37, %"class.boost::detail::stored_edge_property"* %38, %"class.std::allocator.23"* %call43)
          to label %invoke.cont44 unwind label %lpad28

invoke.cont44:                                    ; preds = %invoke.cont42
  store %"class.boost::detail::stored_edge_property"* %call45, %"class.boost::detail::stored_edge_property"** %__new_finish, align 4
  br label %try.cont

lpad28:                                           ; preds = %invoke.cont42, %invoke.cont38, %invoke.cont35, %invoke.cont33, %invoke.cont31, %invoke.cont29, %if.else
  %40 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  %41 = extractvalue { i8*, i32 } %40, 0
  store i8* %41, i8** %exn.slot
  %42 = extractvalue { i8*, i32 } %40, 1
  store i32 %42, i32* %ehselector.slot
  br label %catch

catch:                                            ; preds = %lpad28
  %exn = load i8** %exn.slot
  %43 = call i8* @__cxa_begin_catch(i8* %exn) nounwind
  %44 = load %"class.boost::detail::stored_edge_property"** %__new_finish, align 4
  %tobool = icmp ne %"class.boost::detail::stored_edge_property"* %44, null
  br i1 %tobool, label %if.else51, label %if.then46

if.then46:                                        ; preds = %catch
  %45 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl47 = getelementptr inbounds %"struct.std::_Vector_base.22"* %45, i32 0, i32 0
  %46 = bitcast %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl47 to %"class.__gnu_cxx::new_allocator.24"*
  %47 = load %"class.boost::detail::stored_edge_property"** %__new_start, align 4
  %48 = load i32* %__elems_before, align 4
  %add.ptr48 = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %47, i32 %48
  invoke void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEEE7destroyEPS5_(%"class.__gnu_cxx::new_allocator.24"* %46, %"class.boost::detail::stored_edge_property"* %add.ptr48)
          to label %invoke.cont50 unwind label %lpad49

invoke.cont50:                                    ; preds = %if.then46
  br label %if.end

lpad49:                                           ; preds = %invoke.cont55, %if.end, %invoke.cont52, %if.else51, %if.then46
  %49 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %50 = extractvalue { i8*, i32 } %49, 0
  store i8* %50, i8** %exn.slot
  %51 = extractvalue { i8*, i32 } %49, 1
  store i32 %51, i32* %ehselector.slot
  invoke void @__cxa_end_catch()
          to label %invoke.cont56 unwind label %terminate.lpad

if.else51:                                        ; preds = %catch
  %52 = load %"class.boost::detail::stored_edge_property"** %__new_start, align 4
  %53 = load %"class.boost::detail::stored_edge_property"** %__new_finish, align 4
  %54 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %call53 = invoke %"class.std::allocator.23"* @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.22"* %54)
          to label %invoke.cont52 unwind label %lpad49

invoke.cont52:                                    ; preds = %if.else51
  invoke void @_ZSt8_DestroyIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEES4_EvT_S6_RSaIT0_E(%"class.boost::detail::stored_edge_property"* %52, %"class.boost::detail::stored_edge_property"* %53, %"class.std::allocator.23"* %call53)
          to label %invoke.cont54 unwind label %lpad49

invoke.cont54:                                    ; preds = %invoke.cont52
  br label %if.end

if.end:                                           ; preds = %invoke.cont54, %invoke.cont50
  %55 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %56 = load %"class.boost::detail::stored_edge_property"** %__new_start, align 4
  %57 = load i32* %__len, align 4
  invoke void @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE13_M_deallocateEPS4_j(%"struct.std::_Vector_base.22"* %55, %"class.boost::detail::stored_edge_property"* %56, i32 %57)
          to label %invoke.cont55 unwind label %lpad49

invoke.cont55:                                    ; preds = %if.end
  invoke void @__cxa_rethrow() noreturn
          to label %unreachable unwind label %lpad49

invoke.cont56:                                    ; preds = %lpad49
  br label %eh.resume

try.cont:                                         ; preds = %invoke.cont44
  %58 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl57 = getelementptr inbounds %"struct.std::_Vector_base.22"* %58, i32 0, i32 0
  %_M_start58 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl57, i32 0, i32 0
  %59 = load %"class.boost::detail::stored_edge_property"** %_M_start58, align 4
  %60 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl59 = getelementptr inbounds %"struct.std::_Vector_base.22"* %60, i32 0, i32 0
  %_M_finish60 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl59, i32 0, i32 1
  %61 = load %"class.boost::detail::stored_edge_property"** %_M_finish60, align 4
  %62 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %call61 = call %"class.std::allocator.23"* @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.22"* %62)
  call void @_ZSt8_DestroyIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEES4_EvT_S6_RSaIT0_E(%"class.boost::detail::stored_edge_property"* %59, %"class.boost::detail::stored_edge_property"* %61, %"class.std::allocator.23"* %call61)
  %63 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %64 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl62 = getelementptr inbounds %"struct.std::_Vector_base.22"* %64, i32 0, i32 0
  %_M_start63 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl62, i32 0, i32 0
  %65 = load %"class.boost::detail::stored_edge_property"** %_M_start63, align 4
  %66 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl64 = getelementptr inbounds %"struct.std::_Vector_base.22"* %66, i32 0, i32 0
  %_M_end_of_storage65 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl64, i32 0, i32 2
  %67 = load %"class.boost::detail::stored_edge_property"** %_M_end_of_storage65, align 4
  %68 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl66 = getelementptr inbounds %"struct.std::_Vector_base.22"* %68, i32 0, i32 0
  %_M_start67 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl66, i32 0, i32 0
  %69 = load %"class.boost::detail::stored_edge_property"** %_M_start67, align 4
  %sub.ptr.lhs.cast = ptrtoint %"class.boost::detail::stored_edge_property"* %67 to i32
  %sub.ptr.rhs.cast = ptrtoint %"class.boost::detail::stored_edge_property"* %69 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 8
  call void @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE13_M_deallocateEPS4_j(%"struct.std::_Vector_base.22"* %63, %"class.boost::detail::stored_edge_property"* %65, i32 %sub.ptr.div)
  %70 = load %"class.boost::detail::stored_edge_property"** %__new_start, align 4
  %71 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl68 = getelementptr inbounds %"struct.std::_Vector_base.22"* %71, i32 0, i32 0
  %_M_start69 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl68, i32 0, i32 0
  store %"class.boost::detail::stored_edge_property"* %70, %"class.boost::detail::stored_edge_property"** %_M_start69, align 4
  %72 = load %"class.boost::detail::stored_edge_property"** %__new_finish, align 4
  %73 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl70 = getelementptr inbounds %"struct.std::_Vector_base.22"* %73, i32 0, i32 0
  %_M_finish71 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl70, i32 0, i32 1
  store %"class.boost::detail::stored_edge_property"* %72, %"class.boost::detail::stored_edge_property"** %_M_finish71, align 4
  %74 = load %"class.boost::detail::stored_edge_property"** %__new_start, align 4
  %75 = load i32* %__len, align 4
  %add.ptr72 = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %74, i32 %75
  %76 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl73 = getelementptr inbounds %"struct.std::_Vector_base.22"* %76, i32 0, i32 0
  %_M_end_of_storage74 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl73, i32 0, i32 2
  store %"class.boost::detail::stored_edge_property"* %add.ptr72, %"class.boost::detail::stored_edge_property"** %_M_end_of_storage74, align 4
  br label %if.end75

if.end75:                                         ; preds = %try.cont, %invoke.cont20
  ret void

eh.resume:                                        ; preds = %invoke.cont56, %invoke.cont22
  %exn76 = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn76, 0
  %lpad.val77 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val77

terminate.lpad:                                   ; preds = %lpad49, %lpad
  %77 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable

unreachable:                                      ; preds = %invoke.cont55
  unreachable
}

define linkonce_odr void @_ZN5boost6detail20stored_edge_propertyIjNS_11no_propertyEEC1ERKS3_(%"class.boost::detail::stored_edge_property"* %this, %"class.boost::detail::stored_edge_property"* %x) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %x.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.boost::detail::stored_edge_property"* %this, %"class.boost::detail::stored_edge_property"** %this.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %x, %"class.boost::detail::stored_edge_property"** %x.addr, align 4
  %this1 = load %"class.boost::detail::stored_edge_property"** %this.addr
  %0 = load %"class.boost::detail::stored_edge_property"** %x.addr
  call void @_ZN5boost6detail20stored_edge_propertyIjNS_11no_propertyEEC2ERKS3_(%"class.boost::detail::stored_edge_property"* %this1, %"class.boost::detail::stored_edge_property"* %0)
  ret void
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZSt13copy_backwardIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEES5_ET0_T_S7_S6_(%"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"* %__result) inlinehint {
entry:
  %__first.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__last.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__result.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__result, %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %0 = load %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  %call = call %"class.boost::detail::stored_edge_property"* @_ZSt12__miter_baseIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEEENSt11_Miter_baseIT_E13iterator_typeES7_(%"class.boost::detail::stored_edge_property"* %0)
  %1 = load %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  %call1 = call %"class.boost::detail::stored_edge_property"* @_ZSt12__miter_baseIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEEENSt11_Miter_baseIT_E13iterator_typeES7_(%"class.boost::detail::stored_edge_property"* %1)
  %2 = load %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %call2 = call %"class.boost::detail::stored_edge_property"* @_ZSt23__copy_move_backward_a2ILb0EPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEES5_ET1_T0_S7_S6_(%"class.boost::detail::stored_edge_property"* %call, %"class.boost::detail::stored_edge_property"* %call1, %"class.boost::detail::stored_edge_property"* %2)
  ret %"class.boost::detail::stored_edge_property"* %call2
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZN5boost6detail20stored_edge_propertyIjNS_11no_propertyEEaSERKS3_(%"class.boost::detail::stored_edge_property"* %this, %"class.boost::detail::stored_edge_property"* %x) align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %x.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.boost::detail::stored_edge_property"* %this, %"class.boost::detail::stored_edge_property"** %this.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %x, %"class.boost::detail::stored_edge_property"** %x.addr, align 4
  %this1 = load %"class.boost::detail::stored_edge_property"** %this.addr
  %0 = bitcast %"class.boost::detail::stored_edge_property"* %this1 to %"class.boost::detail::stored_edge"*
  %1 = load %"class.boost::detail::stored_edge_property"** %x.addr, align 4
  %2 = bitcast %"class.boost::detail::stored_edge_property"* %1 to %"class.boost::detail::stored_edge"*
  %call = call %"class.boost::detail::stored_edge"* @_ZN5boost6detail11stored_edgeIjEaSERKS2_(%"class.boost::detail::stored_edge"* %0, %"class.boost::detail::stored_edge"* %2)
  %m_property = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %this1, i32 0, i32 1
  %3 = load %"class.boost::detail::stored_edge_property"** %x.addr, align 4
  %m_property2 = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %3, i32 0, i32 1
  %call3 = call %"class.std::auto_ptr"* @_ZNSt8auto_ptrIN5boost11no_propertyEEaSERS2_(%"class.std::auto_ptr"* %m_property, %"class.std::auto_ptr"* %m_property2) nounwind
  ret %"class.boost::detail::stored_edge_property"* %this1
}

define linkonce_odr i32 @_ZNKSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE12_M_check_lenEjPKc(%"class.std::vector.21"* %this, i32 %__n, i8* %__s) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.21"*, align 4
  %__n.addr = alloca i32, align 4
  %__s.addr = alloca i8*, align 4
  %__len = alloca i32, align 4
  %ref.tmp = alloca i32, align 4
  store %"class.std::vector.21"* %this, %"class.std::vector.21"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i8* %__s, i8** %__s.addr, align 4
  %this1 = load %"class.std::vector.21"** %this.addr
  %call = call i32 @_ZNKSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE8max_sizeEv(%"class.std::vector.21"* %this1)
  %call2 = call i32 @_ZNKSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE4sizeEv(%"class.std::vector.21"* %this1)
  %sub = sub i32 %call, %call2
  %0 = load i32* %__n.addr, align 4
  %cmp = icmp ult i32 %sub, %0
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %1 = load i8** %__s.addr, align 4
  call void @_ZSt20__throw_length_errorPKc(i8* %1) noreturn
  unreachable

if.end:                                           ; preds = %entry
  %call3 = call i32 @_ZNKSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE4sizeEv(%"class.std::vector.21"* %this1)
  %call4 = call i32 @_ZNKSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE4sizeEv(%"class.std::vector.21"* %this1)
  store i32 %call4, i32* %ref.tmp, align 4
  %call5 = call i32* @_ZSt3maxIjERKT_S2_S2_(i32* %ref.tmp, i32* %__n.addr)
  %2 = load i32* %call5
  %add = add i32 %call3, %2
  store i32 %add, i32* %__len, align 4
  %3 = load i32* %__len, align 4
  %call6 = call i32 @_ZNKSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE4sizeEv(%"class.std::vector.21"* %this1)
  %cmp7 = icmp ult i32 %3, %call6
  br i1 %cmp7, label %cond.true, label %lor.lhs.false

lor.lhs.false:                                    ; preds = %if.end
  %4 = load i32* %__len, align 4
  %call8 = call i32 @_ZNKSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE8max_sizeEv(%"class.std::vector.21"* %this1)
  %cmp9 = icmp ugt i32 %4, %call8
  br i1 %cmp9, label %cond.true, label %cond.false

cond.true:                                        ; preds = %lor.lhs.false, %if.end
  %call10 = call i32 @_ZNKSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE8max_sizeEv(%"class.std::vector.21"* %this1)
  br label %cond.end

cond.false:                                       ; preds = %lor.lhs.false
  %5 = load i32* %__len, align 4
  br label %cond.end

cond.end:                                         ; preds = %cond.false, %cond.true
  %cond = phi i32 [ %call10, %cond.true ], [ %5, %cond.false ]
  ret i32 %cond
}

define linkonce_odr i32 @_ZN9__gnu_cxxmiIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSD_SG_(%"class.__gnu_cxx::__normal_iterator"* %__lhs, %"class.__gnu_cxx::__normal_iterator"* %__rhs) nounwind inlinehint {
entry:
  %__lhs.addr = alloca %"class.__gnu_cxx::__normal_iterator"*, align 4
  %__rhs.addr = alloca %"class.__gnu_cxx::__normal_iterator"*, align 4
  store %"class.__gnu_cxx::__normal_iterator"* %__lhs, %"class.__gnu_cxx::__normal_iterator"** %__lhs.addr, align 4
  store %"class.__gnu_cxx::__normal_iterator"* %__rhs, %"class.__gnu_cxx::__normal_iterator"** %__rhs.addr, align 4
  %0 = load %"class.__gnu_cxx::__normal_iterator"** %__lhs.addr, align 4
  %call = call %"class.boost::detail::stored_edge_property"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator"* %0)
  %1 = load %"class.boost::detail::stored_edge_property"** %call
  %2 = load %"class.__gnu_cxx::__normal_iterator"** %__rhs.addr, align 4
  %call1 = call %"class.boost::detail::stored_edge_property"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator"* %2)
  %3 = load %"class.boost::detail::stored_edge_property"** %call1
  %sub.ptr.lhs.cast = ptrtoint %"class.boost::detail::stored_edge_property"* %1 to i32
  %sub.ptr.rhs.cast = ptrtoint %"class.boost::detail::stored_edge_property"* %3 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 8
  ret i32 %sub.ptr.div
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE11_M_allocateEj(%"struct.std::_Vector_base.22"* %this, i32 %__n) align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base.22"*, align 4
  %__n.addr = alloca i32, align 4
  store %"struct.std::_Vector_base.22"* %this, %"struct.std::_Vector_base.22"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  %this1 = load %"struct.std::_Vector_base.22"** %this.addr
  %0 = load i32* %__n.addr, align 4
  %cmp = icmp ne i32 %0, 0
  br i1 %cmp, label %cond.true, label %cond.false

cond.true:                                        ; preds = %entry
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.22"* %this1, i32 0, i32 0
  %1 = bitcast %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl to %"class.__gnu_cxx::new_allocator.24"*
  %2 = load i32* %__n.addr, align 4
  %call = call %"class.boost::detail::stored_edge_property"* @_ZN9__gnu_cxx13new_allocatorIN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEEE8allocateEjPKv(%"class.__gnu_cxx::new_allocator.24"* %1, i32 %2, i8* null)
  br label %cond.end

cond.false:                                       ; preds = %entry
  br label %cond.end

cond.end:                                         ; preds = %cond.false, %cond.true
  %cond = phi %"class.boost::detail::stored_edge_property"* [ %call, %cond.true ], [ null, %cond.false ]
  ret %"class.boost::detail::stored_edge_property"* %cond
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZSt22__uninitialized_move_aIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEES5_SaIS4_EET0_T_S8_S7_RT1_(%"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"* %__result, %"class.std::allocator.23"* %__alloc) inlinehint {
entry:
  %__first.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__last.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__result.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__alloc.addr = alloca %"class.std::allocator.23"*, align 4
  store %"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__result, %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  store %"class.std::allocator.23"* %__alloc, %"class.std::allocator.23"** %__alloc.addr, align 4
  %0 = load %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  %1 = load %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  %2 = load %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %3 = load %"class.std::allocator.23"** %__alloc.addr, align 4
  %call = call %"class.boost::detail::stored_edge_property"* @_ZSt22__uninitialized_copy_aIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEES5_S4_ET0_T_S7_S6_RSaIT1_E(%"class.boost::detail::stored_edge_property"* %0, %"class.boost::detail::stored_edge_property"* %1, %"class.boost::detail::stored_edge_property"* %2, %"class.std::allocator.23"* %3)
  ret %"class.boost::detail::stored_edge_property"* %call
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEEE7destroyEPS5_(%"class.__gnu_cxx::new_allocator.24"* %this, %"class.boost::detail::stored_edge_property"* %__p) align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.24"*, align 4
  %__p.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.__gnu_cxx::new_allocator.24"* %this, %"class.__gnu_cxx::new_allocator.24"** %this.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__p, %"class.boost::detail::stored_edge_property"** %__p.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.24"** %this.addr
  %0 = load %"class.boost::detail::stored_edge_property"** %__p.addr, align 4
  call void @_ZN5boost6detail20stored_edge_propertyIjNS_11no_propertyEED1Ev(%"class.boost::detail::stored_edge_property"* %0)
  ret void
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZSt22__uninitialized_copy_aIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEES5_S4_ET0_T_S7_S6_RSaIT1_E(%"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"* %__result, %"class.std::allocator.23"*) inlinehint {
entry:
  %__first.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__last.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__result.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %.addr = alloca %"class.std::allocator.23"*, align 4
  store %"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__result, %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  store %"class.std::allocator.23"* %0, %"class.std::allocator.23"** %.addr, align 4
  %1 = load %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  %2 = load %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  %3 = load %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %call = call %"class.boost::detail::stored_edge_property"* @_ZSt18uninitialized_copyIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEES5_ET0_T_S7_S6_(%"class.boost::detail::stored_edge_property"* %1, %"class.boost::detail::stored_edge_property"* %2, %"class.boost::detail::stored_edge_property"* %3)
  ret %"class.boost::detail::stored_edge_property"* %call
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZSt18uninitialized_copyIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEES5_ET0_T_S7_S6_(%"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"* %__result) inlinehint {
entry:
  %__first.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__last.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__result.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__result, %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %0 = load %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  %1 = load %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  %2 = load %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %call = call %"class.boost::detail::stored_edge_property"* @_ZNSt20__uninitialized_copyILb0EE13__uninit_copyIPN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEES7_EET0_T_S9_S8_(%"class.boost::detail::stored_edge_property"* %0, %"class.boost::detail::stored_edge_property"* %1, %"class.boost::detail::stored_edge_property"* %2)
  ret %"class.boost::detail::stored_edge_property"* %call
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZNSt20__uninitialized_copyILb0EE13__uninit_copyIPN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEES7_EET0_T_S9_S8_(%"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"* %__result) align 2 {
entry:
  %__first.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__last.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__result.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__cur = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__result, %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %0 = load %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %0, %"class.boost::detail::stored_edge_property"** %__cur, align 4
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %1 = load %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  %2 = load %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  %cmp = icmp ne %"class.boost::detail::stored_edge_property"* %1, %2
  br i1 %cmp, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %3 = load %"class.boost::detail::stored_edge_property"** %__cur, align 4
  %call = invoke %"class.boost::detail::stored_edge_property"* @_ZSt11__addressofIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEEEPT_RS5_(%"class.boost::detail::stored_edge_property"* %3)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %for.body
  %4 = load %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  invoke void @_ZSt10_ConstructIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEES4_EvPT_RKT0_(%"class.boost::detail::stored_edge_property"* %call, %"class.boost::detail::stored_edge_property"* %4)
          to label %invoke.cont1 unwind label %lpad

invoke.cont1:                                     ; preds = %invoke.cont
  br label %for.inc

for.inc:                                          ; preds = %invoke.cont1
  %5 = load %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  %incdec.ptr = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %5, i32 1
  store %"class.boost::detail::stored_edge_property"* %incdec.ptr, %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  %6 = load %"class.boost::detail::stored_edge_property"** %__cur, align 4
  %incdec.ptr2 = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %6, i32 1
  store %"class.boost::detail::stored_edge_property"* %incdec.ptr2, %"class.boost::detail::stored_edge_property"** %__cur, align 4
  br label %for.cond

lpad:                                             ; preds = %invoke.cont, %for.body
  %7 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  %8 = extractvalue { i8*, i32 } %7, 0
  store i8* %8, i8** %exn.slot
  %9 = extractvalue { i8*, i32 } %7, 1
  store i32 %9, i32* %ehselector.slot
  br label %catch

catch:                                            ; preds = %lpad
  %exn = load i8** %exn.slot
  %10 = call i8* @__cxa_begin_catch(i8* %exn) nounwind
  %11 = load %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %12 = load %"class.boost::detail::stored_edge_property"** %__cur, align 4
  invoke void @_ZSt8_DestroyIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEEEvT_S6_(%"class.boost::detail::stored_edge_property"* %11, %"class.boost::detail::stored_edge_property"* %12)
          to label %invoke.cont4 unwind label %lpad3

invoke.cont4:                                     ; preds = %catch
  invoke void @__cxa_rethrow() noreturn
          to label %unreachable unwind label %lpad3

for.end:                                          ; preds = %for.cond
  %13 = load %"class.boost::detail::stored_edge_property"** %__cur, align 4
  ret %"class.boost::detail::stored_edge_property"* %13

lpad3:                                            ; preds = %invoke.cont4, %catch
  %14 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %15 = extractvalue { i8*, i32 } %14, 0
  store i8* %15, i8** %exn.slot
  %16 = extractvalue { i8*, i32 } %14, 1
  store i32 %16, i32* %ehselector.slot
  invoke void @__cxa_end_catch()
          to label %invoke.cont5 unwind label %terminate.lpad

invoke.cont5:                                     ; preds = %lpad3
  br label %eh.resume

try.cont:                                         ; No predecessors!
  call void @llvm.trap()
  unreachable

eh.resume:                                        ; preds = %invoke.cont5
  %exn6 = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn6, 0
  %lpad.val7 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val7

terminate.lpad:                                   ; preds = %lpad3
  %17 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable

unreachable:                                      ; preds = %invoke.cont4
  unreachable
}

define linkonce_odr void @_ZSt10_ConstructIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEES4_EvPT_RKT0_(%"class.boost::detail::stored_edge_property"* %__p, %"class.boost::detail::stored_edge_property"* %__value) inlinehint {
entry:
  %__p.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__value.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.boost::detail::stored_edge_property"* %__p, %"class.boost::detail::stored_edge_property"** %__p.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__value, %"class.boost::detail::stored_edge_property"** %__value.addr, align 4
  %0 = load %"class.boost::detail::stored_edge_property"** %__p.addr, align 4
  %1 = bitcast %"class.boost::detail::stored_edge_property"* %0 to i8*
  %new.isnull = icmp eq i8* %1, null
  br i1 %new.isnull, label %new.cont, label %new.notnull

new.notnull:                                      ; preds = %entry
  %2 = bitcast i8* %1 to %"class.boost::detail::stored_edge_property"*
  %3 = load %"class.boost::detail::stored_edge_property"** %__value.addr, align 4
  call void @_ZN5boost6detail20stored_edge_propertyIjNS_11no_propertyEEC1ERKS3_(%"class.boost::detail::stored_edge_property"* %2, %"class.boost::detail::stored_edge_property"* %3)
  br label %new.cont

new.cont:                                         ; preds = %new.notnull, %entry
  %4 = phi %"class.boost::detail::stored_edge_property"* [ %2, %new.notnull ], [ null, %entry ]
  ret void
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZN9__gnu_cxx13new_allocatorIN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEEE8allocateEjPKv(%"class.__gnu_cxx::new_allocator.24"* %this, i32 %__n, i8*) align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.24"*, align 4
  %__n.addr = alloca i32, align 4
  %.addr = alloca i8*, align 4
  store %"class.__gnu_cxx::new_allocator.24"* %this, %"class.__gnu_cxx::new_allocator.24"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i8* %0, i8** %.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.24"** %this.addr
  %1 = load i32* %__n.addr, align 4
  %call = call i32 @_ZNK9__gnu_cxx13new_allocatorIN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEEE8max_sizeEv(%"class.__gnu_cxx::new_allocator.24"* %this1) nounwind
  %cmp = icmp ugt i32 %1, %call
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  call void @_ZSt17__throw_bad_allocv() noreturn
  unreachable

if.end:                                           ; preds = %entry
  %2 = load i32* %__n.addr, align 4
  %mul = mul i32 %2, 8
  %call2 = call noalias i8* @_Znwj(i32 %mul)
  %3 = bitcast i8* %call2 to %"class.boost::detail::stored_edge_property"*
  ret %"class.boost::detail::stored_edge_property"* %3
}

define linkonce_odr i32 @_ZNK9__gnu_cxx13new_allocatorIN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEEE8max_sizeEv(%"class.__gnu_cxx::new_allocator.24"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.24"*, align 4
  store %"class.__gnu_cxx::new_allocator.24"* %this, %"class.__gnu_cxx::new_allocator.24"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.24"** %this.addr
  ret i32 536870911
}

define linkonce_odr i32 @_ZNKSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE8max_sizeEv(%"class.std::vector.21"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.21"*, align 4
  store %"class.std::vector.21"* %this, %"class.std::vector.21"** %this.addr, align 4
  %this1 = load %"class.std::vector.21"** %this.addr
  %0 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %call = call %"class.std::allocator.23"* @_ZNKSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.22"* %0)
  %1 = bitcast %"class.std::allocator.23"* %call to %"class.__gnu_cxx::new_allocator.24"*
  %call2 = call i32 @_ZNK9__gnu_cxx13new_allocatorIN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEEE8max_sizeEv(%"class.__gnu_cxx::new_allocator.24"* %1) nounwind
  ret i32 %call2
}

define linkonce_odr i32 @_ZNKSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE4sizeEv(%"class.std::vector.21"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::vector.21"*, align 4
  store %"class.std::vector.21"* %this, %"class.std::vector.21"** %this.addr, align 4
  %this1 = load %"class.std::vector.21"** %this.addr
  %0 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.22"* %0, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl, i32 0, i32 1
  %1 = load %"class.boost::detail::stored_edge_property"** %_M_finish, align 4
  %2 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base.22"* %2, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl2, i32 0, i32 0
  %3 = load %"class.boost::detail::stored_edge_property"** %_M_start, align 4
  %sub.ptr.lhs.cast = ptrtoint %"class.boost::detail::stored_edge_property"* %1 to i32
  %sub.ptr.rhs.cast = ptrtoint %"class.boost::detail::stored_edge_property"* %3 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 8
  ret i32 %sub.ptr.div
}

define linkonce_odr %"class.std::allocator.23"* @_ZNKSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.22"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base.22"*, align 4
  store %"struct.std::_Vector_base.22"* %this, %"struct.std::_Vector_base.22"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base.22"** %this.addr
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.22"* %this1, i32 0, i32 0
  %0 = bitcast %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl to %"class.std::allocator.23"*
  ret %"class.std::allocator.23"* %0
}

define linkonce_odr %"class.boost::detail::stored_edge"* @_ZN5boost6detail11stored_edgeIjEaSERKS2_(%"class.boost::detail::stored_edge"* %this, %"class.boost::detail::stored_edge"* %x) nounwind inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::stored_edge"*, align 4
  %x.addr = alloca %"class.boost::detail::stored_edge"*, align 4
  store %"class.boost::detail::stored_edge"* %this, %"class.boost::detail::stored_edge"** %this.addr, align 4
  store %"class.boost::detail::stored_edge"* %x, %"class.boost::detail::stored_edge"** %x.addr, align 4
  %this1 = load %"class.boost::detail::stored_edge"** %this.addr
  %0 = load %"class.boost::detail::stored_edge"** %x.addr, align 4
  %m_target = getelementptr inbounds %"class.boost::detail::stored_edge"* %0, i32 0, i32 0
  %1 = load i32* %m_target, align 4
  %m_target2 = getelementptr inbounds %"class.boost::detail::stored_edge"* %this1, i32 0, i32 0
  store i32 %1, i32* %m_target2, align 4
  ret %"class.boost::detail::stored_edge"* %this1
}

define linkonce_odr %"class.std::auto_ptr"* @_ZNSt8auto_ptrIN5boost11no_propertyEEaSERS2_(%"class.std::auto_ptr"* %this, %"class.std::auto_ptr"* %__a) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::auto_ptr"*, align 4
  %__a.addr = alloca %"class.std::auto_ptr"*, align 4
  store %"class.std::auto_ptr"* %this, %"class.std::auto_ptr"** %this.addr, align 4
  store %"class.std::auto_ptr"* %__a, %"class.std::auto_ptr"** %__a.addr, align 4
  %this1 = load %"class.std::auto_ptr"** %this.addr
  %0 = load %"class.std::auto_ptr"** %__a.addr, align 4
  %call = call %"struct.boost::no_property"* @_ZNSt8auto_ptrIN5boost11no_propertyEE7releaseEv(%"class.std::auto_ptr"* %0) nounwind
  call void @_ZNSt8auto_ptrIN5boost11no_propertyEE5resetEPS1_(%"class.std::auto_ptr"* %this1, %"struct.boost::no_property"* %call) nounwind
  ret %"class.std::auto_ptr"* %this1
}

define linkonce_odr void @_ZNSt8auto_ptrIN5boost11no_propertyEE5resetEPS1_(%"class.std::auto_ptr"* %this, %"struct.boost::no_property"* %__p) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::auto_ptr"*, align 4
  %__p.addr = alloca %"struct.boost::no_property"*, align 4
  store %"class.std::auto_ptr"* %this, %"class.std::auto_ptr"** %this.addr, align 4
  store %"struct.boost::no_property"* %__p, %"struct.boost::no_property"** %__p.addr, align 4
  %this1 = load %"class.std::auto_ptr"** %this.addr
  %0 = load %"struct.boost::no_property"** %__p.addr, align 4
  %_M_ptr = getelementptr inbounds %"class.std::auto_ptr"* %this1, i32 0, i32 0
  %1 = load %"struct.boost::no_property"** %_M_ptr, align 4
  %cmp = icmp ne %"struct.boost::no_property"* %0, %1
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %_M_ptr2 = getelementptr inbounds %"class.std::auto_ptr"* %this1, i32 0, i32 0
  %2 = load %"struct.boost::no_property"** %_M_ptr2, align 4
  %isnull = icmp eq %"struct.boost::no_property"* %2, null
  br i1 %isnull, label %delete.end, label %delete.notnull

delete.notnull:                                   ; preds = %if.then
  %3 = bitcast %"struct.boost::no_property"* %2 to i8*
  call void @_ZdlPv(i8* %3) nounwind
  br label %delete.end

delete.end:                                       ; preds = %delete.notnull, %if.then
  %4 = load %"struct.boost::no_property"** %__p.addr, align 4
  %_M_ptr3 = getelementptr inbounds %"class.std::auto_ptr"* %this1, i32 0, i32 0
  store %"struct.boost::no_property"* %4, %"struct.boost::no_property"** %_M_ptr3, align 4
  br label %if.end

if.end:                                           ; preds = %delete.end, %entry
  ret void
}

define linkonce_odr %"struct.boost::no_property"* @_ZNSt8auto_ptrIN5boost11no_propertyEE7releaseEv(%"class.std::auto_ptr"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::auto_ptr"*, align 4
  %__tmp = alloca %"struct.boost::no_property"*, align 4
  store %"class.std::auto_ptr"* %this, %"class.std::auto_ptr"** %this.addr, align 4
  %this1 = load %"class.std::auto_ptr"** %this.addr
  %_M_ptr = getelementptr inbounds %"class.std::auto_ptr"* %this1, i32 0, i32 0
  %0 = load %"struct.boost::no_property"** %_M_ptr, align 4
  store %"struct.boost::no_property"* %0, %"struct.boost::no_property"** %__tmp, align 4
  %_M_ptr2 = getelementptr inbounds %"class.std::auto_ptr"* %this1, i32 0, i32 0
  store %"struct.boost::no_property"* null, %"struct.boost::no_property"** %_M_ptr2, align 4
  %1 = load %"struct.boost::no_property"** %__tmp, align 4
  ret %"struct.boost::no_property"* %1
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZSt23__copy_move_backward_a2ILb0EPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEES5_ET1_T0_S7_S6_(%"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"* %__result) inlinehint {
entry:
  %__first.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__last.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__result.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__result, %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %0 = load %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  %call = call %"class.boost::detail::stored_edge_property"* @_ZSt12__niter_baseIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEEENSt11_Niter_baseIT_E13iterator_typeES7_(%"class.boost::detail::stored_edge_property"* %0)
  %1 = load %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  %call1 = call %"class.boost::detail::stored_edge_property"* @_ZSt12__niter_baseIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEEENSt11_Niter_baseIT_E13iterator_typeES7_(%"class.boost::detail::stored_edge_property"* %1)
  %2 = load %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %call2 = call %"class.boost::detail::stored_edge_property"* @_ZSt12__niter_baseIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEEENSt11_Niter_baseIT_E13iterator_typeES7_(%"class.boost::detail::stored_edge_property"* %2)
  %call3 = call %"class.boost::detail::stored_edge_property"* @_ZSt22__copy_move_backward_aILb0EPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEES5_ET1_T0_S7_S6_(%"class.boost::detail::stored_edge_property"* %call, %"class.boost::detail::stored_edge_property"* %call1, %"class.boost::detail::stored_edge_property"* %call2)
  ret %"class.boost::detail::stored_edge_property"* %call3
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZSt12__miter_baseIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEEENSt11_Miter_baseIT_E13iterator_typeES7_(%"class.boost::detail::stored_edge_property"* %__it) inlinehint {
entry:
  %__it.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.boost::detail::stored_edge_property"* %__it, %"class.boost::detail::stored_edge_property"** %__it.addr, align 4
  %0 = load %"class.boost::detail::stored_edge_property"** %__it.addr, align 4
  %call = call %"class.boost::detail::stored_edge_property"* @_ZNSt10_Iter_baseIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEELb0EE7_S_baseES5_(%"class.boost::detail::stored_edge_property"* %0)
  ret %"class.boost::detail::stored_edge_property"* %call
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZNSt10_Iter_baseIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEELb0EE7_S_baseES5_(%"class.boost::detail::stored_edge_property"* %__it) nounwind align 2 {
entry:
  %__it.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.boost::detail::stored_edge_property"* %__it, %"class.boost::detail::stored_edge_property"** %__it.addr, align 4
  %0 = load %"class.boost::detail::stored_edge_property"** %__it.addr, align 4
  ret %"class.boost::detail::stored_edge_property"* %0
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZSt22__copy_move_backward_aILb0EPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEES5_ET1_T0_S7_S6_(%"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"* %__result) inlinehint {
entry:
  %__first.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__last.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__result.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__simple = alloca i8, align 1
  store %"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__result, %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  store i8 0, i8* %__simple, align 1
  %0 = load %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  %1 = load %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  %2 = load %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %call = call %"class.boost::detail::stored_edge_property"* @_ZNSt20__copy_move_backwardILb0ELb0ESt26random_access_iterator_tagE13__copy_move_bIPN5boost6detail20stored_edge_propertyIjNS3_11no_propertyEEES8_EET0_T_SA_S9_(%"class.boost::detail::stored_edge_property"* %0, %"class.boost::detail::stored_edge_property"* %1, %"class.boost::detail::stored_edge_property"* %2)
  ret %"class.boost::detail::stored_edge_property"* %call
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZSt12__niter_baseIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEEENSt11_Niter_baseIT_E13iterator_typeES7_(%"class.boost::detail::stored_edge_property"* %__it) nounwind inlinehint {
entry:
  %__it.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.boost::detail::stored_edge_property"* %__it, %"class.boost::detail::stored_edge_property"** %__it.addr, align 4
  %0 = load %"class.boost::detail::stored_edge_property"** %__it.addr, align 4
  %call = call %"class.boost::detail::stored_edge_property"* @_ZNSt10_Iter_baseIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEELb0EE7_S_baseES5_(%"class.boost::detail::stored_edge_property"* %0)
  ret %"class.boost::detail::stored_edge_property"* %call
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZNSt20__copy_move_backwardILb0ELb0ESt26random_access_iterator_tagE13__copy_move_bIPN5boost6detail20stored_edge_propertyIjNS3_11no_propertyEEES8_EET0_T_SA_S9_(%"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"* %__result) align 2 {
entry:
  %__first.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__last.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__result.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__n = alloca i32, align 4
  store %"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__result, %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %0 = load %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  %1 = load %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  %sub.ptr.lhs.cast = ptrtoint %"class.boost::detail::stored_edge_property"* %0 to i32
  %sub.ptr.rhs.cast = ptrtoint %"class.boost::detail::stored_edge_property"* %1 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 8
  store i32 %sub.ptr.div, i32* %__n, align 4
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %2 = load i32* %__n, align 4
  %cmp = icmp sgt i32 %2, 0
  br i1 %cmp, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %3 = load %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %incdec.ptr = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %3, i32 -1
  store %"class.boost::detail::stored_edge_property"* %incdec.ptr, %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %4 = load %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  %incdec.ptr1 = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %4, i32 -1
  store %"class.boost::detail::stored_edge_property"* %incdec.ptr1, %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  %call = call %"class.boost::detail::stored_edge_property"* @_ZN5boost6detail20stored_edge_propertyIjNS_11no_propertyEEaSERKS3_(%"class.boost::detail::stored_edge_property"* %incdec.ptr, %"class.boost::detail::stored_edge_property"* %incdec.ptr1)
  br label %for.inc

for.inc:                                          ; preds = %for.body
  %5 = load i32* %__n, align 4
  %dec = add nsw i32 %5, -1
  store i32 %dec, i32* %__n, align 4
  br label %for.cond

for.end:                                          ; preds = %for.cond
  %6 = load %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  ret %"class.boost::detail::stored_edge_property"* %6
}

define linkonce_odr void @_ZN5boost6detail20stored_edge_propertyIjNS_11no_propertyEEC2ERKS3_(%"class.boost::detail::stored_edge_property"* %this, %"class.boost::detail::stored_edge_property"* %x) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %x.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.boost::detail::stored_edge_property"* %this, %"class.boost::detail::stored_edge_property"** %this.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %x, %"class.boost::detail::stored_edge_property"** %x.addr, align 4
  %this1 = load %"class.boost::detail::stored_edge_property"** %this.addr
  %0 = bitcast %"class.boost::detail::stored_edge_property"* %this1 to %"class.boost::detail::stored_edge"*
  %1 = load %"class.boost::detail::stored_edge_property"** %x.addr, align 4
  %2 = bitcast %"class.boost::detail::stored_edge_property"* %1 to %"class.boost::detail::stored_edge"*
  %3 = bitcast %"class.boost::detail::stored_edge"* %0 to i8*
  %4 = bitcast %"class.boost::detail::stored_edge"* %2 to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %3, i8* %4, i32 4, i32 4, i1 false)
  %m_property = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %this1, i32 0, i32 1
  %5 = load %"class.boost::detail::stored_edge_property"** %x.addr, align 4
  %m_property2 = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %5, i32 0, i32 1
  call void @_ZNSt8auto_ptrIN5boost11no_propertyEEC1ERS2_(%"class.std::auto_ptr"* %m_property, %"class.std::auto_ptr"* %m_property2) nounwind
  ret void
}

define linkonce_odr void @_ZNSt8auto_ptrIN5boost11no_propertyEEC1ERS2_(%"class.std::auto_ptr"* %this, %"class.std::auto_ptr"* %__a) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::auto_ptr"*, align 4
  %__a.addr = alloca %"class.std::auto_ptr"*, align 4
  store %"class.std::auto_ptr"* %this, %"class.std::auto_ptr"** %this.addr, align 4
  store %"class.std::auto_ptr"* %__a, %"class.std::auto_ptr"** %__a.addr, align 4
  %this1 = load %"class.std::auto_ptr"** %this.addr
  %0 = load %"class.std::auto_ptr"** %__a.addr
  call void @_ZNSt8auto_ptrIN5boost11no_propertyEEC2ERS2_(%"class.std::auto_ptr"* %this1, %"class.std::auto_ptr"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZNSt8auto_ptrIN5boost11no_propertyEEC2ERS2_(%"class.std::auto_ptr"* %this, %"class.std::auto_ptr"* %__a) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::auto_ptr"*, align 4
  %__a.addr = alloca %"class.std::auto_ptr"*, align 4
  store %"class.std::auto_ptr"* %this, %"class.std::auto_ptr"** %this.addr, align 4
  store %"class.std::auto_ptr"* %__a, %"class.std::auto_ptr"** %__a.addr, align 4
  %this1 = load %"class.std::auto_ptr"** %this.addr
  %_M_ptr = getelementptr inbounds %"class.std::auto_ptr"* %this1, i32 0, i32 0
  %0 = load %"class.std::auto_ptr"** %__a.addr, align 4
  %call = call %"struct.boost::no_property"* @_ZNSt8auto_ptrIN5boost11no_propertyEE7releaseEv(%"class.std::auto_ptr"* %0) nounwind
  store %"struct.boost::no_property"* %call, %"struct.boost::no_property"** %_M_ptr, align 4
  ret void
}

define linkonce_odr void @_ZN5boost6tuples5tupleIRN9__gnu_cxx17__normal_iteratorIPNS_6detail20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEERbNS0_9null_typeESF_SF_SF_SF_SF_SF_SF_EC1ESD_SE_(%"class.boost::tuples::tuple.64"* %this, %"class.__gnu_cxx::__normal_iterator"* %t0, i8* %t1) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::tuples::tuple.64"*, align 4
  %t0.addr = alloca %"class.__gnu_cxx::__normal_iterator"*, align 4
  %t1.addr = alloca i8*, align 4
  store %"class.boost::tuples::tuple.64"* %this, %"class.boost::tuples::tuple.64"** %this.addr, align 4
  store %"class.__gnu_cxx::__normal_iterator"* %t0, %"class.__gnu_cxx::__normal_iterator"** %t0.addr, align 4
  store i8* %t1, i8** %t1.addr, align 4
  %this1 = load %"class.boost::tuples::tuple.64"** %this.addr
  %0 = load i8** %t1.addr
  %1 = load %"class.__gnu_cxx::__normal_iterator"** %t0.addr
  call void @_ZN5boost6tuples5tupleIRN9__gnu_cxx17__normal_iteratorIPNS_6detail20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEERbNS0_9null_typeESF_SF_SF_SF_SF_SF_SF_EC2ESD_SE_(%"class.boost::tuples::tuple.64"* %this1, %"class.__gnu_cxx::__normal_iterator"* %1, i8* %0)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples5tupleIRN9__gnu_cxx17__normal_iteratorIPNS_6detail20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEERbNS0_9null_typeESF_SF_SF_SF_SF_SF_SF_EC2ESD_SE_(%"class.boost::tuples::tuple.64"* %this, %"class.__gnu_cxx::__normal_iterator"* %t0, i8* %t1) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::tuples::tuple.64"*, align 4
  %t0.addr = alloca %"class.__gnu_cxx::__normal_iterator"*, align 4
  %t1.addr = alloca i8*, align 4
  %ref.tmp = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp2 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp3 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp4 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp5 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp6 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp7 = alloca %"struct.boost::tuples::null_type", align 1
  %ref.tmp8 = alloca %"struct.boost::tuples::null_type", align 1
  store %"class.boost::tuples::tuple.64"* %this, %"class.boost::tuples::tuple.64"** %this.addr, align 4
  store %"class.__gnu_cxx::__normal_iterator"* %t0, %"class.__gnu_cxx::__normal_iterator"** %t0.addr, align 4
  store i8* %t1, i8** %t1.addr, align 4
  %this1 = load %"class.boost::tuples::tuple.64"** %this.addr
  %0 = bitcast %"class.boost::tuples::tuple.64"* %this1 to %"struct.boost::tuples::cons.65"*
  %1 = load %"class.__gnu_cxx::__normal_iterator"** %t0.addr, align 4
  %2 = load i8** %t1.addr, align 4
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp2)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp3)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp4)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp5)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp6)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp7)
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp8)
  call void @_ZN5boost6tuples4consIRN9__gnu_cxx17__normal_iteratorIPNS_6detail20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEENS1_IRbNS0_9null_typeEEEEC2ISC_bKSF_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EERT_RT0_RT1_RT2_RT3_RT4_RT5_RT6_RT7_RT8_(%"struct.boost::tuples::cons.65"* %0, %"class.__gnu_cxx::__normal_iterator"* %1, i8* %2, %"struct.boost::tuples::null_type"* %ref.tmp, %"struct.boost::tuples::null_type"* %ref.tmp2, %"struct.boost::tuples::null_type"* %ref.tmp3, %"struct.boost::tuples::null_type"* %ref.tmp4, %"struct.boost::tuples::null_type"* %ref.tmp5, %"struct.boost::tuples::null_type"* %ref.tmp6, %"struct.boost::tuples::null_type"* %ref.tmp7, %"struct.boost::tuples::null_type"* %ref.tmp8)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples4consIRN9__gnu_cxx17__normal_iteratorIPNS_6detail20stored_edge_propertyIjNS_11no_propertyEEESt6vectorIS7_SaIS7_EEEENS1_IRbNS0_9null_typeEEEEC2ISC_bKSF_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EERT_RT0_RT1_RT2_RT3_RT4_RT5_RT6_RT7_RT8_(%"struct.boost::tuples::cons.65"* %this, %"class.__gnu_cxx::__normal_iterator"* %t1, i8* %t2, %"struct.boost::tuples::null_type"* %t3, %"struct.boost::tuples::null_type"* %t4, %"struct.boost::tuples::null_type"* %t5, %"struct.boost::tuples::null_type"* %t6, %"struct.boost::tuples::null_type"* %t7, %"struct.boost::tuples::null_type"* %t8, %"struct.boost::tuples::null_type"* %t9, %"struct.boost::tuples::null_type"* %t10) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::tuples::cons.65"*, align 4
  %t1.addr = alloca %"class.__gnu_cxx::__normal_iterator"*, align 4
  %t2.addr = alloca i8*, align 4
  %t3.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t4.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t5.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t6.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t7.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t8.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t9.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %t10.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %ref.tmp = alloca %"struct.boost::tuples::null_type", align 1
  store %"struct.boost::tuples::cons.65"* %this, %"struct.boost::tuples::cons.65"** %this.addr, align 4
  store %"class.__gnu_cxx::__normal_iterator"* %t1, %"class.__gnu_cxx::__normal_iterator"** %t1.addr, align 4
  store i8* %t2, i8** %t2.addr, align 4
  store %"struct.boost::tuples::null_type"* %t3, %"struct.boost::tuples::null_type"** %t3.addr, align 4
  store %"struct.boost::tuples::null_type"* %t4, %"struct.boost::tuples::null_type"** %t4.addr, align 4
  store %"struct.boost::tuples::null_type"* %t5, %"struct.boost::tuples::null_type"** %t5.addr, align 4
  store %"struct.boost::tuples::null_type"* %t6, %"struct.boost::tuples::null_type"** %t6.addr, align 4
  store %"struct.boost::tuples::null_type"* %t7, %"struct.boost::tuples::null_type"** %t7.addr, align 4
  store %"struct.boost::tuples::null_type"* %t8, %"struct.boost::tuples::null_type"** %t8.addr, align 4
  store %"struct.boost::tuples::null_type"* %t9, %"struct.boost::tuples::null_type"** %t9.addr, align 4
  store %"struct.boost::tuples::null_type"* %t10, %"struct.boost::tuples::null_type"** %t10.addr, align 4
  %this1 = load %"struct.boost::tuples::cons.65"** %this.addr
  %0 = getelementptr inbounds %"struct.boost::tuples::cons.65"* %this1, i32 0, i32 0
  %1 = load %"class.__gnu_cxx::__normal_iterator"** %t1.addr, align 4
  store %"class.__gnu_cxx::__normal_iterator"* %1, %"class.__gnu_cxx::__normal_iterator"** %0, align 4
  %tail = getelementptr inbounds %"struct.boost::tuples::cons.65"* %this1, i32 0, i32 1
  %2 = load i8** %t2.addr, align 4
  %3 = load %"struct.boost::tuples::null_type"** %t3.addr, align 4
  %4 = load %"struct.boost::tuples::null_type"** %t4.addr, align 4
  %5 = load %"struct.boost::tuples::null_type"** %t5.addr, align 4
  %6 = load %"struct.boost::tuples::null_type"** %t6.addr, align 4
  %7 = load %"struct.boost::tuples::null_type"** %t7.addr, align 4
  %8 = load %"struct.boost::tuples::null_type"** %t8.addr, align 4
  %9 = load %"struct.boost::tuples::null_type"** %t9.addr, align 4
  %10 = load %"struct.boost::tuples::null_type"** %t10.addr, align 4
  call void @_ZN5boost6tuples6detail5cnullEv(%"struct.boost::tuples::null_type"* sret %ref.tmp)
  call void @_ZN5boost6tuples4consIRbNS0_9null_typeEEC1IbEERT_RKS3_S9_S9_S9_S9_S9_S9_S9_S9_(%"struct.boost::tuples::cons.66"* %tail, i8* %2, %"struct.boost::tuples::null_type"* %3, %"struct.boost::tuples::null_type"* %4, %"struct.boost::tuples::null_type"* %5, %"struct.boost::tuples::null_type"* %6, %"struct.boost::tuples::null_type"* %7, %"struct.boost::tuples::null_type"* %8, %"struct.boost::tuples::null_type"* %9, %"struct.boost::tuples::null_type"* %10, %"struct.boost::tuples::null_type"* %ref.tmp)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples4consIRbNS0_9null_typeEEC1IbEERT_RKS3_S9_S9_S9_S9_S9_S9_S9_S9_(%"struct.boost::tuples::cons.66"* %this, i8* %t1, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::tuples::cons.66"*, align 4
  %t1.addr = alloca i8*, align 4
  %.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr1 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr2 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr3 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr4 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr5 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr6 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr7 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr8 = alloca %"struct.boost::tuples::null_type"*, align 4
  store %"struct.boost::tuples::cons.66"* %this, %"struct.boost::tuples::cons.66"** %this.addr, align 4
  store i8* %t1, i8** %t1.addr, align 4
  store %"struct.boost::tuples::null_type"* %0, %"struct.boost::tuples::null_type"** %.addr, align 4
  store %"struct.boost::tuples::null_type"* %1, %"struct.boost::tuples::null_type"** %.addr1, align 4
  store %"struct.boost::tuples::null_type"* %2, %"struct.boost::tuples::null_type"** %.addr2, align 4
  store %"struct.boost::tuples::null_type"* %3, %"struct.boost::tuples::null_type"** %.addr3, align 4
  store %"struct.boost::tuples::null_type"* %4, %"struct.boost::tuples::null_type"** %.addr4, align 4
  store %"struct.boost::tuples::null_type"* %5, %"struct.boost::tuples::null_type"** %.addr5, align 4
  store %"struct.boost::tuples::null_type"* %6, %"struct.boost::tuples::null_type"** %.addr6, align 4
  store %"struct.boost::tuples::null_type"* %7, %"struct.boost::tuples::null_type"** %.addr7, align 4
  store %"struct.boost::tuples::null_type"* %8, %"struct.boost::tuples::null_type"** %.addr8, align 4
  %this9 = load %"struct.boost::tuples::cons.66"** %this.addr
  %9 = load i8** %t1.addr
  %10 = load %"struct.boost::tuples::null_type"** %.addr
  %11 = load %"struct.boost::tuples::null_type"** %.addr1
  %12 = load %"struct.boost::tuples::null_type"** %.addr2
  %13 = load %"struct.boost::tuples::null_type"** %.addr3
  %14 = load %"struct.boost::tuples::null_type"** %.addr4
  %15 = load %"struct.boost::tuples::null_type"** %.addr5
  %16 = load %"struct.boost::tuples::null_type"** %.addr6
  %17 = load %"struct.boost::tuples::null_type"** %.addr7
  %18 = load %"struct.boost::tuples::null_type"** %.addr8
  call void @_ZN5boost6tuples4consIRbNS0_9null_typeEEC2IbEERT_RKS3_S9_S9_S9_S9_S9_S9_S9_S9_(%"struct.boost::tuples::cons.66"* %this9, i8* %9, %"struct.boost::tuples::null_type"* %10, %"struct.boost::tuples::null_type"* %11, %"struct.boost::tuples::null_type"* %12, %"struct.boost::tuples::null_type"* %13, %"struct.boost::tuples::null_type"* %14, %"struct.boost::tuples::null_type"* %15, %"struct.boost::tuples::null_type"* %16, %"struct.boost::tuples::null_type"* %17, %"struct.boost::tuples::null_type"* %18)
  ret void
}

define linkonce_odr void @_ZN5boost6tuples4consIRbNS0_9null_typeEEC2IbEERT_RKS3_S9_S9_S9_S9_S9_S9_S9_S9_(%"struct.boost::tuples::cons.66"* %this, i8* %t1, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*, %"struct.boost::tuples::null_type"*) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.boost::tuples::cons.66"*, align 4
  %t1.addr = alloca i8*, align 4
  %.addr = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr1 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr2 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr3 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr4 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr5 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr6 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr7 = alloca %"struct.boost::tuples::null_type"*, align 4
  %.addr8 = alloca %"struct.boost::tuples::null_type"*, align 4
  store %"struct.boost::tuples::cons.66"* %this, %"struct.boost::tuples::cons.66"** %this.addr, align 4
  store i8* %t1, i8** %t1.addr, align 4
  store %"struct.boost::tuples::null_type"* %0, %"struct.boost::tuples::null_type"** %.addr, align 4
  store %"struct.boost::tuples::null_type"* %1, %"struct.boost::tuples::null_type"** %.addr1, align 4
  store %"struct.boost::tuples::null_type"* %2, %"struct.boost::tuples::null_type"** %.addr2, align 4
  store %"struct.boost::tuples::null_type"* %3, %"struct.boost::tuples::null_type"** %.addr3, align 4
  store %"struct.boost::tuples::null_type"* %4, %"struct.boost::tuples::null_type"** %.addr4, align 4
  store %"struct.boost::tuples::null_type"* %5, %"struct.boost::tuples::null_type"** %.addr5, align 4
  store %"struct.boost::tuples::null_type"* %6, %"struct.boost::tuples::null_type"** %.addr6, align 4
  store %"struct.boost::tuples::null_type"* %7, %"struct.boost::tuples::null_type"** %.addr7, align 4
  store %"struct.boost::tuples::null_type"* %8, %"struct.boost::tuples::null_type"** %.addr8, align 4
  %this9 = load %"struct.boost::tuples::cons.66"** %this.addr
  %9 = getelementptr inbounds %"struct.boost::tuples::cons.66"* %this9, i32 0, i32 0
  %10 = load i8** %t1.addr, align 4
  store i8* %10, i8** %9, align 4
  ret void
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE6insertEN9__gnu_cxx17__normal_iteratorIPSB_SD_EEjRKSB_(%"class.std::vector"* %this, %"class.__gnu_cxx::__normal_iterator.68"* byval align 4 %__position, i32 %__n, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__x) align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  %__n.addr = alloca i32, align 4
  %__x.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator.68", align 4
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__x, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__x.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  %0 = bitcast %"class.__gnu_cxx::__normal_iterator.68"* %agg.tmp to i8*
  %1 = bitcast %"class.__gnu_cxx::__normal_iterator.68"* %__position to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 4, i32 4, i1 false)
  %2 = load i32* %__n.addr, align 4
  %3 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__x.addr, align 4
  call void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE14_M_fill_insertEN9__gnu_cxx17__normal_iteratorIPSB_SD_EEjRKSB_(%"class.std::vector"* %this1, %"class.__gnu_cxx::__normal_iterator.68"* byval align 4 %agg.tmp, i32 %2, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %3)
  ret void
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE3endEv(%"class.__gnu_cxx::__normal_iterator.68"* noalias sret %agg.result, %"class.std::vector"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  %0 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %0, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl, i32 0, i32 1
  call void @_ZN9__gnu_cxx17__normal_iteratorIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexESt6vectorISC_SaISC_EEEC1ERKSD_(%"class.__gnu_cxx::__normal_iterator.68"* %agg.result, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish)
  ret void
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE15_M_erase_at_endEPSB_(%"class.std::vector"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__pos) align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  %__pos.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__pos, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__pos.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__pos.addr, align 4
  %1 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %1, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl, i32 0, i32 1
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish, align 4
  %3 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %call = call %"class.std::allocator.0"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %3)
  call void @_ZSt8_DestroyIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESB_EvT_SD_RSaIT0_E(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %0, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %2, %"class.std::allocator.0"* %call)
  %4 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__pos.addr, align 4
  %5 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base"* %5, i32 0, i32 0
  %_M_finish3 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl2, i32 0, i32 1
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %4, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish3, align 4
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx17__normal_iteratorIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexESt6vectorISC_SaISC_EEEC1ERKSD_(%"class.__gnu_cxx::__normal_iterator.68"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__i) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator.68"*, align 4
  %__i.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"**, align 4
  store %"class.__gnu_cxx::__normal_iterator.68"* %this, %"class.__gnu_cxx::__normal_iterator.68"** %this.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__i, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*** %__i.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator.68"** %this.addr
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*** %__i.addr
  call void @_ZN9__gnu_cxx17__normal_iteratorIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexESt6vectorISC_SaISC_EEEC2ERKSD_(%"class.__gnu_cxx::__normal_iterator.68"* %this1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %0)
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx17__normal_iteratorIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexESt6vectorISC_SaISC_EEEC2ERKSD_(%"class.__gnu_cxx::__normal_iterator.68"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__i) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator.68"*, align 4
  %__i.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"**, align 4
  store %"class.__gnu_cxx::__normal_iterator.68"* %this, %"class.__gnu_cxx::__normal_iterator.68"** %this.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__i, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*** %__i.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator.68"** %this.addr
  %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.68"* %this1, i32 0, i32 0
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*** %__i.addr, align 4
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %0, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_current, align 4
  ret void
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE14_M_fill_insertEN9__gnu_cxx17__normal_iteratorIPSB_SD_EEjRKSB_(%"class.std::vector"* %this, %"class.__gnu_cxx::__normal_iterator.68"* byval align 4 %__position, i32 %__n, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__x) align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  %__n.addr = alloca i32, align 4
  %__x.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__x_copy = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex", align 4
  %__elems_after = alloca i32, align 4
  %ref.tmp = alloca %"class.__gnu_cxx::__normal_iterator.68", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %__old_finish = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__len = alloca i32, align 4
  %__elems_before = alloca i32, align 4
  %ref.tmp61 = alloca %"class.__gnu_cxx::__normal_iterator.68", align 4
  %__new_start = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__new_finish = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__x, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__x.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  %0 = load i32* %__n.addr, align 4
  %cmp = icmp ne i32 %0, 0
  br i1 %cmp, label %if.then, label %if.end123

if.then:                                          ; preds = %entry
  %1 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %1, i32 0, i32 0
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl, i32 0, i32 2
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_end_of_storage, align 4
  %3 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base"* %3, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl2, i32 0, i32 1
  %4 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish, align 4
  %sub.ptr.lhs.cast = ptrtoint %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %2 to i32
  %sub.ptr.rhs.cast = ptrtoint %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %4 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 16
  %5 = load i32* %__n.addr, align 4
  %cmp3 = icmp uge i32 %sub.ptr.div, %5
  br i1 %cmp3, label %if.then4, label %if.else59

if.then4:                                         ; preds = %if.then
  %6 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__x.addr, align 4
  call void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexC1ERKSA_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__x_copy, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %6)
  invoke void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE3endEv(%"class.__gnu_cxx::__normal_iterator.68"* sret %ref.tmp, %"class.std::vector"* %this1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %if.then4
  %call = invoke i32 @_ZN9__gnu_cxxmiIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexESt6vectorISC_SaISC_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSK_SN_(%"class.__gnu_cxx::__normal_iterator.68"* %ref.tmp, %"class.__gnu_cxx::__normal_iterator.68"* %__position)
          to label %invoke.cont5 unwind label %lpad

invoke.cont5:                                     ; preds = %invoke.cont
  store i32 %call, i32* %__elems_after, align 4
  %7 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl6 = getelementptr inbounds %"struct.std::_Vector_base"* %7, i32 0, i32 0
  %_M_finish7 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl6, i32 0, i32 1
  %8 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish7, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %8, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__old_finish, align 4
  %9 = load i32* %__elems_after, align 4
  %10 = load i32* %__n.addr, align 4
  %cmp8 = icmp ugt i32 %9, %10
  br i1 %cmp8, label %if.then9, label %if.else

if.then9:                                         ; preds = %invoke.cont5
  %11 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl10 = getelementptr inbounds %"struct.std::_Vector_base"* %11, i32 0, i32 0
  %_M_finish11 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl10, i32 0, i32 1
  %12 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish11, align 4
  %13 = load i32* %__n.addr, align 4
  %idx.neg = sub i32 0, %13
  %add.ptr = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %12, i32 %idx.neg
  %14 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl12 = getelementptr inbounds %"struct.std::_Vector_base"* %14, i32 0, i32 0
  %_M_finish13 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl12, i32 0, i32 1
  %15 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish13, align 4
  %16 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl14 = getelementptr inbounds %"struct.std::_Vector_base"* %16, i32 0, i32 0
  %_M_finish15 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl14, i32 0, i32 1
  %17 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish15, align 4
  %18 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %call17 = invoke %"class.std::allocator.0"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %18)
          to label %invoke.cont16 unwind label %lpad

invoke.cont16:                                    ; preds = %if.then9
  %call19 = invoke %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt22__uninitialized_move_aIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESC_SaISB_EET0_T_SF_SE_RT1_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %15, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %17, %"class.std::allocator.0"* %call17)
          to label %invoke.cont18 unwind label %lpad

invoke.cont18:                                    ; preds = %invoke.cont16
  %19 = load i32* %__n.addr, align 4
  %20 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl20 = getelementptr inbounds %"struct.std::_Vector_base"* %20, i32 0, i32 0
  %_M_finish21 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl20, i32 0, i32 1
  %21 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish21, align 4
  %add.ptr22 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %21, i32 %19
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr22, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish21, align 4
  %call24 = invoke %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexESt6vectorISC_SaISC_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.68"* %__position)
          to label %invoke.cont23 unwind label %lpad

invoke.cont23:                                    ; preds = %invoke.cont18
  %22 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %call24
  %23 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__old_finish, align 4
  %24 = load i32* %__n.addr, align 4
  %idx.neg25 = sub i32 0, %24
  %add.ptr26 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %23, i32 %idx.neg25
  %25 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__old_finish, align 4
  %call28 = invoke %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt13copy_backwardIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESC_ET0_T_SE_SD_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %22, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr26, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %25)
          to label %invoke.cont27 unwind label %lpad

invoke.cont27:                                    ; preds = %invoke.cont23
  %call30 = invoke %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexESt6vectorISC_SaISC_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.68"* %__position)
          to label %invoke.cont29 unwind label %lpad

invoke.cont29:                                    ; preds = %invoke.cont27
  %26 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %call30
  %call32 = invoke %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexESt6vectorISC_SaISC_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.68"* %__position)
          to label %invoke.cont31 unwind label %lpad

invoke.cont31:                                    ; preds = %invoke.cont29
  %27 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %call32
  %28 = load i32* %__n.addr, align 4
  %add.ptr33 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %27, i32 %28
  invoke void @_ZSt4fillIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESB_EvT_SD_RKT0_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %26, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr33, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__x_copy)
          to label %invoke.cont34 unwind label %lpad

invoke.cont34:                                    ; preds = %invoke.cont31
  br label %if.end

lpad:                                             ; preds = %invoke.cont55, %invoke.cont50, %invoke.cont48, %invoke.cont44, %invoke.cont39, %invoke.cont37, %if.else, %invoke.cont31, %invoke.cont29, %invoke.cont27, %invoke.cont23, %invoke.cont18, %invoke.cont16, %if.then9, %invoke.cont, %if.then4
  %29 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %30 = extractvalue { i8*, i32 } %29, 0
  store i8* %30, i8** %exn.slot
  %31 = extractvalue { i8*, i32 } %29, 1
  store i32 %31, i32* %ehselector.slot
  invoke void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexD1Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__x_copy)
          to label %invoke.cont58 unwind label %terminate.lpad

if.else:                                          ; preds = %invoke.cont5
  %32 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl35 = getelementptr inbounds %"struct.std::_Vector_base"* %32, i32 0, i32 0
  %_M_finish36 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl35, i32 0, i32 1
  %33 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish36, align 4
  %34 = load i32* %__n.addr, align 4
  %35 = load i32* %__elems_after, align 4
  %sub = sub i32 %34, %35
  %36 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %call38 = invoke %"class.std::allocator.0"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %36)
          to label %invoke.cont37 unwind label %lpad

invoke.cont37:                                    ; preds = %if.else
  invoke void @_ZSt24__uninitialized_fill_n_aIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexEjSB_SB_EvT_T0_RKT1_RSaIT2_E(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %33, i32 %sub, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__x_copy, %"class.std::allocator.0"* %call38)
          to label %invoke.cont39 unwind label %lpad

invoke.cont39:                                    ; preds = %invoke.cont37
  %37 = load i32* %__n.addr, align 4
  %38 = load i32* %__elems_after, align 4
  %sub40 = sub i32 %37, %38
  %39 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl41 = getelementptr inbounds %"struct.std::_Vector_base"* %39, i32 0, i32 0
  %_M_finish42 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl41, i32 0, i32 1
  %40 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish42, align 4
  %add.ptr43 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %40, i32 %sub40
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr43, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish42, align 4
  %call45 = invoke %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexESt6vectorISC_SaISC_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.68"* %__position)
          to label %invoke.cont44 unwind label %lpad

invoke.cont44:                                    ; preds = %invoke.cont39
  %41 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %call45
  %42 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__old_finish, align 4
  %43 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl46 = getelementptr inbounds %"struct.std::_Vector_base"* %43, i32 0, i32 0
  %_M_finish47 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl46, i32 0, i32 1
  %44 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish47, align 4
  %45 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %call49 = invoke %"class.std::allocator.0"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %45)
          to label %invoke.cont48 unwind label %lpad

invoke.cont48:                                    ; preds = %invoke.cont44
  %call51 = invoke %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt22__uninitialized_move_aIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESC_SaISB_EET0_T_SF_SE_RT1_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %41, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %42, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %44, %"class.std::allocator.0"* %call49)
          to label %invoke.cont50 unwind label %lpad

invoke.cont50:                                    ; preds = %invoke.cont48
  %46 = load i32* %__elems_after, align 4
  %47 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl52 = getelementptr inbounds %"struct.std::_Vector_base"* %47, i32 0, i32 0
  %_M_finish53 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl52, i32 0, i32 1
  %48 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish53, align 4
  %add.ptr54 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %48, i32 %46
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr54, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish53, align 4
  %call56 = invoke %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexESt6vectorISC_SaISC_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.68"* %__position)
          to label %invoke.cont55 unwind label %lpad

invoke.cont55:                                    ; preds = %invoke.cont50
  %49 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %call56
  %50 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__old_finish, align 4
  invoke void @_ZSt4fillIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESB_EvT_SD_RKT0_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %49, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %50, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__x_copy)
          to label %invoke.cont57 unwind label %lpad

invoke.cont57:                                    ; preds = %invoke.cont55
  br label %if.end

if.end:                                           ; preds = %invoke.cont57, %invoke.cont34
  call void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexD1Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__x_copy)
  br label %if.end122

invoke.cont58:                                    ; preds = %lpad
  br label %eh.resume

if.else59:                                        ; preds = %if.then
  %51 = load i32* %__n.addr, align 4
  %call60 = call i32 @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE12_M_check_lenEjPKc(%"class.std::vector"* %this1, i32 %51, i8* getelementptr inbounds ([23 x i8]* @.str16, i32 0, i32 0))
  store i32 %call60, i32* %__len, align 4
  call void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE5beginEv(%"class.__gnu_cxx::__normal_iterator.68"* sret %ref.tmp61, %"class.std::vector"* %this1)
  %call62 = call i32 @_ZN9__gnu_cxxmiIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexESt6vectorISC_SaISC_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSK_SN_(%"class.__gnu_cxx::__normal_iterator.68"* %__position, %"class.__gnu_cxx::__normal_iterator.68"* %ref.tmp61)
  store i32 %call62, i32* %__elems_before, align 4
  %52 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %53 = load i32* %__len, align 4
  %call63 = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE11_M_allocateEj(%"struct.std::_Vector_base"* %52, i32 %53)
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %call63, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__new_start, align 4
  %54 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__new_start, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %54, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__new_finish, align 4
  %55 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__new_start, align 4
  %56 = load i32* %__elems_before, align 4
  %add.ptr64 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %55, i32 %56
  %57 = load i32* %__n.addr, align 4
  %58 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__x.addr, align 4
  %59 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %call67 = invoke %"class.std::allocator.0"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %59)
          to label %invoke.cont66 unwind label %lpad65

invoke.cont66:                                    ; preds = %if.else59
  invoke void @_ZSt24__uninitialized_fill_n_aIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexEjSB_SB_EvT_T0_RKT1_RSaIT2_E(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr64, i32 %57, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %58, %"class.std::allocator.0"* %call67)
          to label %invoke.cont68 unwind label %lpad65

invoke.cont68:                                    ; preds = %invoke.cont66
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* null, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__new_finish, align 4
  %60 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl69 = getelementptr inbounds %"struct.std::_Vector_base"* %60, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl69, i32 0, i32 0
  %61 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start, align 4
  %call71 = invoke %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexESt6vectorISC_SaISC_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.68"* %__position)
          to label %invoke.cont70 unwind label %lpad65

invoke.cont70:                                    ; preds = %invoke.cont68
  %62 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %call71
  %63 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__new_start, align 4
  %64 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %call73 = invoke %"class.std::allocator.0"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %64)
          to label %invoke.cont72 unwind label %lpad65

invoke.cont72:                                    ; preds = %invoke.cont70
  %call75 = invoke %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt22__uninitialized_move_aIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESC_SaISB_EET0_T_SF_SE_RT1_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %61, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %62, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %63, %"class.std::allocator.0"* %call73)
          to label %invoke.cont74 unwind label %lpad65

invoke.cont74:                                    ; preds = %invoke.cont72
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %call75, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__new_finish, align 4
  %65 = load i32* %__n.addr, align 4
  %66 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__new_finish, align 4
  %add.ptr76 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %66, i32 %65
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr76, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__new_finish, align 4
  %call78 = invoke %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexESt6vectorISC_SaISC_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.68"* %__position)
          to label %invoke.cont77 unwind label %lpad65

invoke.cont77:                                    ; preds = %invoke.cont74
  %67 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %call78
  %68 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl79 = getelementptr inbounds %"struct.std::_Vector_base"* %68, i32 0, i32 0
  %_M_finish80 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl79, i32 0, i32 1
  %69 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish80, align 4
  %70 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__new_finish, align 4
  %71 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %call82 = invoke %"class.std::allocator.0"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %71)
          to label %invoke.cont81 unwind label %lpad65

invoke.cont81:                                    ; preds = %invoke.cont77
  %call84 = invoke %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt22__uninitialized_move_aIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESC_SaISB_EET0_T_SF_SE_RT1_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %67, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %69, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %70, %"class.std::allocator.0"* %call82)
          to label %invoke.cont83 unwind label %lpad65

invoke.cont83:                                    ; preds = %invoke.cont81
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %call84, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__new_finish, align 4
  br label %try.cont

lpad65:                                           ; preds = %invoke.cont81, %invoke.cont77, %invoke.cont74, %invoke.cont72, %invoke.cont70, %invoke.cont68, %invoke.cont66, %if.else59
  %72 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  %73 = extractvalue { i8*, i32 } %72, 0
  store i8* %73, i8** %exn.slot
  %74 = extractvalue { i8*, i32 } %72, 1
  store i32 %74, i32* %ehselector.slot
  br label %catch

catch:                                            ; preds = %lpad65
  %exn = load i8** %exn.slot
  %75 = call i8* @__cxa_begin_catch(i8* %exn) nounwind
  %76 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__new_finish, align 4
  %tobool = icmp ne %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %76, null
  br i1 %tobool, label %if.else93, label %if.then85

if.then85:                                        ; preds = %catch
  %77 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__new_start, align 4
  %78 = load i32* %__elems_before, align 4
  %add.ptr86 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %77, i32 %78
  %79 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__new_start, align 4
  %80 = load i32* %__elems_before, align 4
  %add.ptr87 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %79, i32 %80
  %81 = load i32* %__n.addr, align 4
  %add.ptr88 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr87, i32 %81
  %82 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %call91 = invoke %"class.std::allocator.0"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %82)
          to label %invoke.cont90 unwind label %lpad89

invoke.cont90:                                    ; preds = %if.then85
  invoke void @_ZSt8_DestroyIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESB_EvT_SD_RSaIT0_E(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr86, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr88, %"class.std::allocator.0"* %call91)
          to label %invoke.cont92 unwind label %lpad89

invoke.cont92:                                    ; preds = %invoke.cont90
  br label %if.end97

lpad89:                                           ; preds = %invoke.cont98, %if.end97, %invoke.cont94, %if.else93, %invoke.cont90, %if.then85
  %83 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %84 = extractvalue { i8*, i32 } %83, 0
  store i8* %84, i8** %exn.slot
  %85 = extractvalue { i8*, i32 } %83, 1
  store i32 %85, i32* %ehselector.slot
  invoke void @__cxa_end_catch()
          to label %invoke.cont99 unwind label %terminate.lpad

if.else93:                                        ; preds = %catch
  %86 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__new_start, align 4
  %87 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__new_finish, align 4
  %88 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %call95 = invoke %"class.std::allocator.0"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %88)
          to label %invoke.cont94 unwind label %lpad89

invoke.cont94:                                    ; preds = %if.else93
  invoke void @_ZSt8_DestroyIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESB_EvT_SD_RSaIT0_E(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %86, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %87, %"class.std::allocator.0"* %call95)
          to label %invoke.cont96 unwind label %lpad89

invoke.cont96:                                    ; preds = %invoke.cont94
  br label %if.end97

if.end97:                                         ; preds = %invoke.cont96, %invoke.cont92
  %89 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %90 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__new_start, align 4
  %91 = load i32* %__len, align 4
  invoke void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE13_M_deallocateEPSB_j(%"struct.std::_Vector_base"* %89, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %90, i32 %91)
          to label %invoke.cont98 unwind label %lpad89

invoke.cont98:                                    ; preds = %if.end97
  invoke void @__cxa_rethrow() noreturn
          to label %unreachable unwind label %lpad89

invoke.cont99:                                    ; preds = %lpad89
  br label %eh.resume

try.cont:                                         ; preds = %invoke.cont83
  %92 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl100 = getelementptr inbounds %"struct.std::_Vector_base"* %92, i32 0, i32 0
  %_M_start101 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl100, i32 0, i32 0
  %93 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start101, align 4
  %94 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl102 = getelementptr inbounds %"struct.std::_Vector_base"* %94, i32 0, i32 0
  %_M_finish103 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl102, i32 0, i32 1
  %95 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish103, align 4
  %96 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %call104 = call %"class.std::allocator.0"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %96)
  call void @_ZSt8_DestroyIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESB_EvT_SD_RSaIT0_E(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %93, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %95, %"class.std::allocator.0"* %call104)
  %97 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %98 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl105 = getelementptr inbounds %"struct.std::_Vector_base"* %98, i32 0, i32 0
  %_M_start106 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl105, i32 0, i32 0
  %99 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start106, align 4
  %100 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl107 = getelementptr inbounds %"struct.std::_Vector_base"* %100, i32 0, i32 0
  %_M_end_of_storage108 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl107, i32 0, i32 2
  %101 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_end_of_storage108, align 4
  %102 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl109 = getelementptr inbounds %"struct.std::_Vector_base"* %102, i32 0, i32 0
  %_M_start110 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl109, i32 0, i32 0
  %103 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start110, align 4
  %sub.ptr.lhs.cast111 = ptrtoint %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %101 to i32
  %sub.ptr.rhs.cast112 = ptrtoint %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %103 to i32
  %sub.ptr.sub113 = sub i32 %sub.ptr.lhs.cast111, %sub.ptr.rhs.cast112
  %sub.ptr.div114 = sdiv exact i32 %sub.ptr.sub113, 16
  call void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE13_M_deallocateEPSB_j(%"struct.std::_Vector_base"* %97, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %99, i32 %sub.ptr.div114)
  %104 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__new_start, align 4
  %105 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl115 = getelementptr inbounds %"struct.std::_Vector_base"* %105, i32 0, i32 0
  %_M_start116 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl115, i32 0, i32 0
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %104, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start116, align 4
  %106 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__new_finish, align 4
  %107 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl117 = getelementptr inbounds %"struct.std::_Vector_base"* %107, i32 0, i32 0
  %_M_finish118 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl117, i32 0, i32 1
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %106, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish118, align 4
  %108 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__new_start, align 4
  %109 = load i32* %__len, align 4
  %add.ptr119 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %108, i32 %109
  %110 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl120 = getelementptr inbounds %"struct.std::_Vector_base"* %110, i32 0, i32 0
  %_M_end_of_storage121 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl120, i32 0, i32 2
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr119, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_end_of_storage121, align 4
  br label %if.end122

if.end122:                                        ; preds = %try.cont, %if.end
  br label %if.end123

if.end123:                                        ; preds = %if.end122, %entry
  ret void

eh.resume:                                        ; preds = %invoke.cont99, %invoke.cont58
  %exn124 = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn124, 0
  %lpad.val125 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val125

terminate.lpad:                                   ; preds = %lpad89, %lpad
  %111 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable

unreachable:                                      ; preds = %invoke.cont98
  unreachable
}

define linkonce_odr void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexC1ERKSA_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %this.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %0, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %.addr, align 4
  %this1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %this.addr
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %.addr
  call void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexC2ERKSA_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %this1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %1)
  ret void
}

define linkonce_odr i32 @_ZN9__gnu_cxxmiIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexESt6vectorISC_SaISC_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSK_SN_(%"class.__gnu_cxx::__normal_iterator.68"* %__lhs, %"class.__gnu_cxx::__normal_iterator.68"* %__rhs) nounwind inlinehint {
entry:
  %__lhs.addr = alloca %"class.__gnu_cxx::__normal_iterator.68"*, align 4
  %__rhs.addr = alloca %"class.__gnu_cxx::__normal_iterator.68"*, align 4
  store %"class.__gnu_cxx::__normal_iterator.68"* %__lhs, %"class.__gnu_cxx::__normal_iterator.68"** %__lhs.addr, align 4
  store %"class.__gnu_cxx::__normal_iterator.68"* %__rhs, %"class.__gnu_cxx::__normal_iterator.68"** %__rhs.addr, align 4
  %0 = load %"class.__gnu_cxx::__normal_iterator.68"** %__lhs.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexESt6vectorISC_SaISC_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.68"* %0)
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %call
  %2 = load %"class.__gnu_cxx::__normal_iterator.68"** %__rhs.addr, align 4
  %call1 = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexESt6vectorISC_SaISC_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.68"* %2)
  %3 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %call1
  %sub.ptr.lhs.cast = ptrtoint %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %1 to i32
  %sub.ptr.rhs.cast = ptrtoint %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %3 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 16
  ret i32 %sub.ptr.div
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt22__uninitialized_move_aIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESC_SaISB_EET0_T_SF_SE_RT1_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__result, %"class.std::allocator.0"* %__alloc) inlinehint {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__last.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__result.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__alloc.addr = alloca %"class.std::allocator.0"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__result, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  store %"class.std::allocator.0"* %__alloc, %"class.std::allocator.0"** %__alloc.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  %3 = load %"class.std::allocator.0"** %__alloc.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt22__uninitialized_copy_aIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESC_SB_ET0_T_SE_SD_RSaIT1_E(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %0, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %2, %"class.std::allocator.0"* %3)
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %call
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt13copy_backwardIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESC_ET0_T_SE_SD_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__result) inlinehint {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__last.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__result.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__result, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt12__miter_baseIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexEENSt11_Miter_baseIT_E13iterator_typeESE_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %0)
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  %call1 = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt12__miter_baseIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexEENSt11_Miter_baseIT_E13iterator_typeESE_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %1)
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  %call2 = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt23__copy_move_backward_a2ILb0EPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESC_ET1_T0_SE_SD_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %call, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %call1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %2)
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %call2
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexESt6vectorISC_SaISC_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.68"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator.68"*, align 4
  store %"class.__gnu_cxx::__normal_iterator.68"* %this, %"class.__gnu_cxx::__normal_iterator.68"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator.68"** %this.addr
  %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.68"* %this1, i32 0, i32 0
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_current
}

define linkonce_odr void @_ZSt4fillIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESB_EvT_SD_RKT0_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__value) inlinehint {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__last.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__value.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__value, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__value.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt12__niter_baseIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexEENSt11_Niter_baseIT_E13iterator_typeESE_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %0)
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  %call1 = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt12__niter_baseIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexEENSt11_Niter_baseIT_E13iterator_typeESE_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %1)
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__value.addr, align 4
  call void @_ZSt8__fill_aIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESB_EN9__gnu_cxx11__enable_ifIXntsr11__is_scalarIT0_EE7__valueEvE6__typeET_SI_RKSF_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %call, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %call1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %2)
  ret void
}

define linkonce_odr void @_ZSt24__uninitialized_fill_n_aIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexEjSB_SB_EvT_T0_RKT1_RSaIT2_E(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, i32 %__n, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__x, %"class.std::allocator.0"*) inlinehint {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__n.addr = alloca i32, align 4
  %__x.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %.addr = alloca %"class.std::allocator.0"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__x, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__x.addr, align 4
  store %"class.std::allocator.0"* %0, %"class.std::allocator.0"** %.addr, align 4
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %2 = load i32* %__n.addr, align 4
  %3 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__x.addr, align 4
  call void @_ZSt20uninitialized_fill_nIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexEjSB_EvT_T0_RKT1_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %1, i32 %2, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %3)
  ret void
}

define linkonce_odr i32 @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE12_M_check_lenEjPKc(%"class.std::vector"* %this, i32 %__n, i8* %__s) align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  %__n.addr = alloca i32, align 4
  %__s.addr = alloca i8*, align 4
  %__len = alloca i32, align 4
  %ref.tmp = alloca i32, align 4
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i8* %__s, i8** %__s.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  %call = call i32 @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE8max_sizeEv(%"class.std::vector"* %this1)
  %call2 = call i32 @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE4sizeEv(%"class.std::vector"* %this1)
  %sub = sub i32 %call, %call2
  %0 = load i32* %__n.addr, align 4
  %cmp = icmp ult i32 %sub, %0
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  %1 = load i8** %__s.addr, align 4
  call void @_ZSt20__throw_length_errorPKc(i8* %1) noreturn
  unreachable

if.end:                                           ; preds = %entry
  %call3 = call i32 @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE4sizeEv(%"class.std::vector"* %this1)
  %call4 = call i32 @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE4sizeEv(%"class.std::vector"* %this1)
  store i32 %call4, i32* %ref.tmp, align 4
  %call5 = call i32* @_ZSt3maxIjERKT_S2_S2_(i32* %ref.tmp, i32* %__n.addr)
  %2 = load i32* %call5
  %add = add i32 %call3, %2
  store i32 %add, i32* %__len, align 4
  %3 = load i32* %__len, align 4
  %call6 = call i32 @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE4sizeEv(%"class.std::vector"* %this1)
  %cmp7 = icmp ult i32 %3, %call6
  br i1 %cmp7, label %cond.true, label %lor.lhs.false

lor.lhs.false:                                    ; preds = %if.end
  %4 = load i32* %__len, align 4
  %call8 = call i32 @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE8max_sizeEv(%"class.std::vector"* %this1)
  %cmp9 = icmp ugt i32 %4, %call8
  br i1 %cmp9, label %cond.true, label %cond.false

cond.true:                                        ; preds = %lor.lhs.false, %if.end
  %call10 = call i32 @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE8max_sizeEv(%"class.std::vector"* %this1)
  br label %cond.end

cond.false:                                       ; preds = %lor.lhs.false
  %5 = load i32* %__len, align 4
  br label %cond.end

cond.end:                                         ; preds = %cond.false, %cond.true
  %cond = phi i32 [ %call10, %cond.true ], [ %5, %cond.false ]
  ret i32 %cond
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE5beginEv(%"class.__gnu_cxx::__normal_iterator.68"* noalias sret %agg.result, %"class.std::vector"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  %0 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %0, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl, i32 0, i32 0
  call void @_ZN9__gnu_cxx17__normal_iteratorIPN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexESt6vectorISC_SaISC_EEEC1ERKSD_(%"class.__gnu_cxx::__normal_iterator.68"* %agg.result, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start)
  ret void
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE11_M_allocateEj(%"struct.std::_Vector_base"* %this, i32 %__n) align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base"*, align 4
  %__n.addr = alloca i32, align 4
  store %"struct.std::_Vector_base"* %this, %"struct.std::_Vector_base"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  %this1 = load %"struct.std::_Vector_base"** %this.addr
  %0 = load i32* %__n.addr, align 4
  %cmp = icmp ne i32 %0, 0
  br i1 %cmp, label %cond.true, label %cond.false

cond.true:                                        ; preds = %entry
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %this1, i32 0, i32 0
  %1 = bitcast %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl to %"class.__gnu_cxx::new_allocator.1"*
  %2 = load i32* %__n.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZN9__gnu_cxx13new_allocatorIN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexEE8allocateEjPKv(%"class.__gnu_cxx::new_allocator.1"* %1, i32 %2, i8* null)
  br label %cond.end

cond.false:                                       ; preds = %entry
  br label %cond.end

cond.end:                                         ; preds = %cond.false, %cond.true
  %cond = phi %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* [ %call, %cond.true ], [ null, %cond.false ]
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %cond
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZN9__gnu_cxx13new_allocatorIN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexEE8allocateEjPKv(%"class.__gnu_cxx::new_allocator.1"* %this, i32 %__n, i8*) align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.1"*, align 4
  %__n.addr = alloca i32, align 4
  %.addr = alloca i8*, align 4
  store %"class.__gnu_cxx::new_allocator.1"* %this, %"class.__gnu_cxx::new_allocator.1"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store i8* %0, i8** %.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.1"** %this.addr
  %1 = load i32* %__n.addr, align 4
  %call = call i32 @_ZNK9__gnu_cxx13new_allocatorIN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexEE8max_sizeEv(%"class.__gnu_cxx::new_allocator.1"* %this1) nounwind
  %cmp = icmp ugt i32 %1, %call
  br i1 %cmp, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  call void @_ZSt17__throw_bad_allocv() noreturn
  unreachable

if.end:                                           ; preds = %entry
  %2 = load i32* %__n.addr, align 4
  %mul = mul i32 %2, 16
  %call2 = call noalias i8* @_Znwj(i32 %mul)
  %3 = bitcast i8* %call2 to %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %3
}

define linkonce_odr i32 @_ZNK9__gnu_cxx13new_allocatorIN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexEE8max_sizeEv(%"class.__gnu_cxx::new_allocator.1"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.1"*, align 4
  store %"class.__gnu_cxx::new_allocator.1"* %this, %"class.__gnu_cxx::new_allocator.1"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.1"** %this.addr
  ret i32 268435455
}

define linkonce_odr i32 @_ZNKSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE8max_sizeEv(%"class.std::vector"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  %0 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %call = call %"class.std::allocator.0"* @_ZNKSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %0)
  %1 = bitcast %"class.std::allocator.0"* %call to %"class.__gnu_cxx::new_allocator.1"*
  %call2 = call i32 @_ZNK9__gnu_cxx13new_allocatorIN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexEE8max_sizeEv(%"class.__gnu_cxx::new_allocator.1"* %1) nounwind
  ret i32 %call2
}

define linkonce_odr %"class.std::allocator.0"* @_ZNKSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base"*, align 4
  store %"struct.std::_Vector_base"* %this, %"struct.std::_Vector_base"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base"** %this.addr
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %this1, i32 0, i32 0
  %0 = bitcast %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl to %"class.std::allocator.0"*
  ret %"class.std::allocator.0"* %0
}

define linkonce_odr void @_ZSt20uninitialized_fill_nIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexEjSB_EvT_T0_RKT1_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, i32 %__n, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__x) inlinehint {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__n.addr = alloca i32, align 4
  %__x.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__x, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__x.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %1 = load i32* %__n.addr, align 4
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__x.addr, align 4
  call void @_ZNSt22__uninitialized_fill_nILb0EE15__uninit_fill_nIPN5boost6detail12adj_list_genINS2_14adjacency_listINS2_4vecSES6_NS2_9directedSENS2_11no_propertyES8_S8_NS2_5listSEEES6_S6_S7_S8_S8_S8_S9_E6config13stored_vertexEjSD_EEvT_T0_RKT1_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %0, i32 %1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %2)
  ret void
}

define linkonce_odr void @_ZNSt22__uninitialized_fill_nILb0EE15__uninit_fill_nIPN5boost6detail12adj_list_genINS2_14adjacency_listINS2_4vecSES6_NS2_9directedSENS2_11no_propertyES8_S8_NS2_5listSEEES6_S6_S7_S8_S8_S8_S9_E6config13stored_vertexEjSD_EEvT_T0_RKT1_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, i32 %__n, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__x) align 2 {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__n.addr = alloca i32, align 4
  %__x.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__cur = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__x, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__x.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %0, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__cur, align 4
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %1 = load i32* %__n.addr, align 4
  %cmp = icmp ugt i32 %1, 0
  br i1 %cmp, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__cur, align 4
  %call = invoke %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt11__addressofIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexEEPT_RSC_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %2)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %for.body
  %3 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__x.addr, align 4
  invoke void @_ZSt10_ConstructIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESB_EvPT_RKT0_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %call, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %3)
          to label %invoke.cont1 unwind label %lpad

invoke.cont1:                                     ; preds = %invoke.cont
  br label %for.inc

for.inc:                                          ; preds = %invoke.cont1
  %4 = load i32* %__n.addr, align 4
  %dec = add i32 %4, -1
  store i32 %dec, i32* %__n.addr, align 4
  %5 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__cur, align 4
  %incdec.ptr = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %5, i32 1
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %incdec.ptr, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__cur, align 4
  br label %for.cond

lpad:                                             ; preds = %invoke.cont, %for.body
  %6 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  %7 = extractvalue { i8*, i32 } %6, 0
  store i8* %7, i8** %exn.slot
  %8 = extractvalue { i8*, i32 } %6, 1
  store i32 %8, i32* %ehselector.slot
  br label %catch

catch:                                            ; preds = %lpad
  %exn = load i8** %exn.slot
  %9 = call i8* @__cxa_begin_catch(i8* %exn) nounwind
  %10 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %11 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__cur, align 4
  invoke void @_ZSt8_DestroyIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexEEvT_SD_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %10, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %11)
          to label %invoke.cont3 unwind label %lpad2

invoke.cont3:                                     ; preds = %catch
  invoke void @__cxa_rethrow() noreturn
          to label %unreachable unwind label %lpad2

for.end:                                          ; preds = %for.cond
  br label %try.cont

lpad2:                                            ; preds = %invoke.cont3, %catch
  %12 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %13 = extractvalue { i8*, i32 } %12, 0
  store i8* %13, i8** %exn.slot
  %14 = extractvalue { i8*, i32 } %12, 1
  store i32 %14, i32* %ehselector.slot
  invoke void @__cxa_end_catch()
          to label %invoke.cont4 unwind label %terminate.lpad

invoke.cont4:                                     ; preds = %lpad2
  br label %eh.resume

try.cont:                                         ; preds = %for.end
  ret void

eh.resume:                                        ; preds = %invoke.cont4
  %exn5 = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn5, 0
  %lpad.val6 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val6

terminate.lpad:                                   ; preds = %lpad2
  %15 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable

unreachable:                                      ; preds = %invoke.cont3
  unreachable
}

define linkonce_odr void @_ZSt10_ConstructIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESB_EvPT_RKT0_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__p, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__value) inlinehint {
entry:
  %__p.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__value.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__p, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__p.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__value, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__value.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__p.addr, align 4
  %1 = bitcast %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %0 to i8*
  %new.isnull = icmp eq i8* %1, null
  br i1 %new.isnull, label %new.cont, label %new.notnull

new.notnull:                                      ; preds = %entry
  %2 = bitcast i8* %1 to %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*
  %3 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__value.addr, align 4
  call void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexC1ERKSA_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %2, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %3)
  br label %new.cont

new.cont:                                         ; preds = %new.notnull, %entry
  %4 = phi %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* [ %2, %new.notnull ], [ null, %entry ]
  ret void
}

define linkonce_odr void @_ZSt8__fill_aIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESB_EN9__gnu_cxx11__enable_ifIXntsr11__is_scalarIT0_EE7__valueEvE6__typeET_SI_RKSF_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__value) inlinehint {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__last.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__value.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__value, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__value.addr, align 4
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  %cmp = icmp ne %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %0, %1
  br i1 %cmp, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %3 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__value.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexaSERKSA_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %2, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %3)
  br label %for.inc

for.inc:                                          ; preds = %for.body
  %4 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %incdec.ptr = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %4, i32 1
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %incdec.ptr, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  br label %for.cond

for.end:                                          ; preds = %for.cond
  ret void
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt12__niter_baseIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexEENSt11_Niter_baseIT_E13iterator_typeESE_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__it) inlinehint {
entry:
  %__it.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__it, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__it.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__it.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZNSt10_Iter_baseIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexELb0EE7_S_baseESC_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %0)
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %call
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZNSt10_Iter_baseIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexELb0EE7_S_baseESC_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__it) nounwind align 2 {
entry:
  %__it.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__it, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__it.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__it.addr, align 4
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %0
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexaSERKSA_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*) inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %this.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %0, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %.addr, align 4
  %this1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %this.addr
  %1 = bitcast %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %this1 to %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"*
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %.addr, align 4
  %3 = bitcast %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %2 to %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"*
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config18rand_stored_vertexaSERKSA_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* %1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* %3)
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %this1
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config18rand_stored_vertexaSERKSA_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"*) inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"*, align 4
  %.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"** %this.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* %0, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"** %.addr, align 4
  %this1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"** %this.addr
  %m_out_edges = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this1, i32 0, i32 0
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"** %.addr, align 4
  %m_out_edges2 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* %1, i32 0, i32 0
  %call = call %"class.std::vector.21"* @_ZNSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EEaSERKS6_(%"class.std::vector.21"* %m_out_edges, %"class.std::vector.21"* %m_out_edges2)
  %m_property = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this1, i32 0, i32 1
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"** %.addr, align 4
  %m_property3 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* %2, i32 0, i32 1
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this1
}

define linkonce_odr %"class.std::vector.21"* @_ZNSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EEaSERKS6_(%"class.std::vector.21"* %this, %"class.std::vector.21"* %__x) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.21"*, align 4
  %__x.addr = alloca %"class.std::vector.21"*, align 4
  %__xlen = alloca i32, align 4
  %__tmp = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator.69", align 4
  %agg.tmp5 = alloca %"class.__gnu_cxx::__normal_iterator.69", align 4
  %agg.tmp23 = alloca %"class.__gnu_cxx::__normal_iterator", align 4
  %agg.tmp24 = alloca %"class.__gnu_cxx::__normal_iterator.69", align 4
  %agg.tmp25 = alloca %"class.__gnu_cxx::__normal_iterator.69", align 4
  %agg.tmp26 = alloca %"class.__gnu_cxx::__normal_iterator", align 4
  %agg.tmp27 = alloca %"class.__gnu_cxx::__normal_iterator", align 4
  store %"class.std::vector.21"* %this, %"class.std::vector.21"** %this.addr, align 4
  store %"class.std::vector.21"* %__x, %"class.std::vector.21"** %__x.addr, align 4
  %this1 = load %"class.std::vector.21"** %this.addr
  %0 = load %"class.std::vector.21"** %__x.addr, align 4
  %cmp = icmp ne %"class.std::vector.21"* %0, %this1
  br i1 %cmp, label %if.then, label %if.end55

if.then:                                          ; preds = %entry
  %1 = load %"class.std::vector.21"** %__x.addr, align 4
  %call = call i32 @_ZNKSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE4sizeEv(%"class.std::vector.21"* %1)
  store i32 %call, i32* %__xlen, align 4
  %2 = load i32* %__xlen, align 4
  %call2 = call i32 @_ZNKSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE8capacityEv(%"class.std::vector.21"* %this1)
  %cmp3 = icmp ugt i32 %2, %call2
  br i1 %cmp3, label %if.then4, label %if.else

if.then4:                                         ; preds = %if.then
  %3 = load i32* %__xlen, align 4
  %4 = load %"class.std::vector.21"** %__x.addr, align 4
  call void @_ZNKSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE5beginEv(%"class.__gnu_cxx::__normal_iterator.69"* sret %agg.tmp, %"class.std::vector.21"* %4)
  %5 = load %"class.std::vector.21"** %__x.addr, align 4
  call void @_ZNKSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE3endEv(%"class.__gnu_cxx::__normal_iterator.69"* sret %agg.tmp5, %"class.std::vector.21"* %5)
  %call6 = call %"class.boost::detail::stored_edge_property"* @_ZNSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE20_M_allocate_and_copyIN9__gnu_cxx17__normal_iteratorIPKS4_S6_EEEEPS4_jT_SE_(%"class.std::vector.21"* %this1, i32 %3, %"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %agg.tmp, %"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %agg.tmp5)
  store %"class.boost::detail::stored_edge_property"* %call6, %"class.boost::detail::stored_edge_property"** %__tmp, align 4
  %6 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.22"* %6, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %7 = load %"class.boost::detail::stored_edge_property"** %_M_start, align 4
  %8 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl7 = getelementptr inbounds %"struct.std::_Vector_base.22"* %8, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl7, i32 0, i32 1
  %9 = load %"class.boost::detail::stored_edge_property"** %_M_finish, align 4
  %10 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %call8 = call %"class.std::allocator.23"* @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.22"* %10)
  call void @_ZSt8_DestroyIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEES4_EvT_S6_RSaIT0_E(%"class.boost::detail::stored_edge_property"* %7, %"class.boost::detail::stored_edge_property"* %9, %"class.std::allocator.23"* %call8)
  %11 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %12 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl9 = getelementptr inbounds %"struct.std::_Vector_base.22"* %12, i32 0, i32 0
  %_M_start10 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl9, i32 0, i32 0
  %13 = load %"class.boost::detail::stored_edge_property"** %_M_start10, align 4
  %14 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl11 = getelementptr inbounds %"struct.std::_Vector_base.22"* %14, i32 0, i32 0
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl11, i32 0, i32 2
  %15 = load %"class.boost::detail::stored_edge_property"** %_M_end_of_storage, align 4
  %16 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl12 = getelementptr inbounds %"struct.std::_Vector_base.22"* %16, i32 0, i32 0
  %_M_start13 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl12, i32 0, i32 0
  %17 = load %"class.boost::detail::stored_edge_property"** %_M_start13, align 4
  %sub.ptr.lhs.cast = ptrtoint %"class.boost::detail::stored_edge_property"* %15 to i32
  %sub.ptr.rhs.cast = ptrtoint %"class.boost::detail::stored_edge_property"* %17 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 8
  call void @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE13_M_deallocateEPS4_j(%"struct.std::_Vector_base.22"* %11, %"class.boost::detail::stored_edge_property"* %13, i32 %sub.ptr.div)
  %18 = load %"class.boost::detail::stored_edge_property"** %__tmp, align 4
  %19 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl14 = getelementptr inbounds %"struct.std::_Vector_base.22"* %19, i32 0, i32 0
  %_M_start15 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl14, i32 0, i32 0
  store %"class.boost::detail::stored_edge_property"* %18, %"class.boost::detail::stored_edge_property"** %_M_start15, align 4
  %20 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl16 = getelementptr inbounds %"struct.std::_Vector_base.22"* %20, i32 0, i32 0
  %_M_start17 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl16, i32 0, i32 0
  %21 = load %"class.boost::detail::stored_edge_property"** %_M_start17, align 4
  %22 = load i32* %__xlen, align 4
  %add.ptr = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %21, i32 %22
  %23 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl18 = getelementptr inbounds %"struct.std::_Vector_base.22"* %23, i32 0, i32 0
  %_M_end_of_storage19 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl18, i32 0, i32 2
  store %"class.boost::detail::stored_edge_property"* %add.ptr, %"class.boost::detail::stored_edge_property"** %_M_end_of_storage19, align 4
  br label %if.end49

if.else:                                          ; preds = %if.then
  %call20 = call i32 @_ZNKSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE4sizeEv(%"class.std::vector.21"* %this1)
  %24 = load i32* %__xlen, align 4
  %cmp21 = icmp uge i32 %call20, %24
  br i1 %cmp21, label %if.then22, label %if.else29

if.then22:                                        ; preds = %if.else
  %25 = load %"class.std::vector.21"** %__x.addr, align 4
  call void @_ZNKSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE5beginEv(%"class.__gnu_cxx::__normal_iterator.69"* sret %agg.tmp24, %"class.std::vector.21"* %25)
  %26 = load %"class.std::vector.21"** %__x.addr, align 4
  call void @_ZNKSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE3endEv(%"class.__gnu_cxx::__normal_iterator.69"* sret %agg.tmp25, %"class.std::vector.21"* %26)
  call void @_ZNSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE5beginEv(%"class.__gnu_cxx::__normal_iterator"* sret %agg.tmp26, %"class.std::vector.21"* %this1)
  call void @_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEENS1_IPS6_SB_EEET0_T_SG_SF_(%"class.__gnu_cxx::__normal_iterator"* sret %agg.tmp23, %"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %agg.tmp24, %"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %agg.tmp25, %"class.__gnu_cxx::__normal_iterator"* byval align 4 %agg.tmp26)
  call void @_ZNSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE3endEv(%"class.__gnu_cxx::__normal_iterator"* sret %agg.tmp27, %"class.std::vector.21"* %this1)
  %27 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %call28 = call %"class.std::allocator.23"* @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.22"* %27)
  call void @_ZSt8_DestroyIN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEES6_EvT_SC_RSaIT0_E(%"class.__gnu_cxx::__normal_iterator"* byval align 4 %agg.tmp23, %"class.__gnu_cxx::__normal_iterator"* byval align 4 %agg.tmp27, %"class.std::allocator.23"* %call28)
  br label %if.end

if.else29:                                        ; preds = %if.else
  %28 = load %"class.std::vector.21"** %__x.addr, align 4
  %29 = bitcast %"class.std::vector.21"* %28 to %"struct.std::_Vector_base.22"*
  %_M_impl30 = getelementptr inbounds %"struct.std::_Vector_base.22"* %29, i32 0, i32 0
  %_M_start31 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl30, i32 0, i32 0
  %30 = load %"class.boost::detail::stored_edge_property"** %_M_start31, align 4
  %31 = load %"class.std::vector.21"** %__x.addr, align 4
  %32 = bitcast %"class.std::vector.21"* %31 to %"struct.std::_Vector_base.22"*
  %_M_impl32 = getelementptr inbounds %"struct.std::_Vector_base.22"* %32, i32 0, i32 0
  %_M_start33 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl32, i32 0, i32 0
  %33 = load %"class.boost::detail::stored_edge_property"** %_M_start33, align 4
  %call34 = call i32 @_ZNKSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE4sizeEv(%"class.std::vector.21"* %this1)
  %add.ptr35 = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %33, i32 %call34
  %34 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl36 = getelementptr inbounds %"struct.std::_Vector_base.22"* %34, i32 0, i32 0
  %_M_start37 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl36, i32 0, i32 0
  %35 = load %"class.boost::detail::stored_edge_property"** %_M_start37, align 4
  %call38 = call %"class.boost::detail::stored_edge_property"* @_ZSt4copyIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEES5_ET0_T_S7_S6_(%"class.boost::detail::stored_edge_property"* %30, %"class.boost::detail::stored_edge_property"* %add.ptr35, %"class.boost::detail::stored_edge_property"* %35)
  %36 = load %"class.std::vector.21"** %__x.addr, align 4
  %37 = bitcast %"class.std::vector.21"* %36 to %"struct.std::_Vector_base.22"*
  %_M_impl39 = getelementptr inbounds %"struct.std::_Vector_base.22"* %37, i32 0, i32 0
  %_M_start40 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl39, i32 0, i32 0
  %38 = load %"class.boost::detail::stored_edge_property"** %_M_start40, align 4
  %call41 = call i32 @_ZNKSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE4sizeEv(%"class.std::vector.21"* %this1)
  %add.ptr42 = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %38, i32 %call41
  %39 = load %"class.std::vector.21"** %__x.addr, align 4
  %40 = bitcast %"class.std::vector.21"* %39 to %"struct.std::_Vector_base.22"*
  %_M_impl43 = getelementptr inbounds %"struct.std::_Vector_base.22"* %40, i32 0, i32 0
  %_M_finish44 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl43, i32 0, i32 1
  %41 = load %"class.boost::detail::stored_edge_property"** %_M_finish44, align 4
  %42 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl45 = getelementptr inbounds %"struct.std::_Vector_base.22"* %42, i32 0, i32 0
  %_M_finish46 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl45, i32 0, i32 1
  %43 = load %"class.boost::detail::stored_edge_property"** %_M_finish46, align 4
  %44 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %call47 = call %"class.std::allocator.23"* @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.22"* %44)
  %call48 = call %"class.boost::detail::stored_edge_property"* @_ZSt22__uninitialized_copy_aIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEES5_S4_ET0_T_S7_S6_RSaIT1_E(%"class.boost::detail::stored_edge_property"* %add.ptr42, %"class.boost::detail::stored_edge_property"* %41, %"class.boost::detail::stored_edge_property"* %43, %"class.std::allocator.23"* %call47)
  br label %if.end

if.end:                                           ; preds = %if.else29, %if.then22
  br label %if.end49

if.end49:                                         ; preds = %if.end, %if.then4
  %45 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl50 = getelementptr inbounds %"struct.std::_Vector_base.22"* %45, i32 0, i32 0
  %_M_start51 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl50, i32 0, i32 0
  %46 = load %"class.boost::detail::stored_edge_property"** %_M_start51, align 4
  %47 = load i32* %__xlen, align 4
  %add.ptr52 = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %46, i32 %47
  %48 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl53 = getelementptr inbounds %"struct.std::_Vector_base.22"* %48, i32 0, i32 0
  %_M_finish54 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl53, i32 0, i32 1
  store %"class.boost::detail::stored_edge_property"* %add.ptr52, %"class.boost::detail::stored_edge_property"** %_M_finish54, align 4
  br label %if.end55

if.end55:                                         ; preds = %if.end49, %entry
  ret %"class.std::vector.21"* %this1
}

define linkonce_odr i32 @_ZNKSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE8capacityEv(%"class.std::vector.21"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::vector.21"*, align 4
  store %"class.std::vector.21"* %this, %"class.std::vector.21"** %this.addr, align 4
  %this1 = load %"class.std::vector.21"** %this.addr
  %0 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.22"* %0, i32 0, i32 0
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl, i32 0, i32 2
  %1 = load %"class.boost::detail::stored_edge_property"** %_M_end_of_storage, align 4
  %2 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base.22"* %2, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl2, i32 0, i32 0
  %3 = load %"class.boost::detail::stored_edge_property"** %_M_start, align 4
  %sub.ptr.lhs.cast = ptrtoint %"class.boost::detail::stored_edge_property"* %1 to i32
  %sub.ptr.rhs.cast = ptrtoint %"class.boost::detail::stored_edge_property"* %3 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 8
  ret i32 %sub.ptr.div
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZNSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE20_M_allocate_and_copyIN9__gnu_cxx17__normal_iteratorIPKS4_S6_EEEEPS4_jT_SE_(%"class.std::vector.21"* %this, i32 %__n, %"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %__first, %"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %__last) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.21"*, align 4
  %__n.addr = alloca i32, align 4
  %__result = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator.69", align 4
  %agg.tmp2 = alloca %"class.__gnu_cxx::__normal_iterator.69", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::vector.21"* %this, %"class.std::vector.21"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  %this1 = load %"class.std::vector.21"** %this.addr
  %0 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %1 = load i32* %__n.addr, align 4
  %call = call %"class.boost::detail::stored_edge_property"* @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE11_M_allocateEj(%"struct.std::_Vector_base.22"* %0, i32 %1)
  store %"class.boost::detail::stored_edge_property"* %call, %"class.boost::detail::stored_edge_property"** %__result, align 4
  %2 = bitcast %"class.__gnu_cxx::__normal_iterator.69"* %agg.tmp to i8*
  %3 = bitcast %"class.__gnu_cxx::__normal_iterator.69"* %__first to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 4, i32 4, i1 false)
  %4 = bitcast %"class.__gnu_cxx::__normal_iterator.69"* %agg.tmp2 to i8*
  %5 = bitcast %"class.__gnu_cxx::__normal_iterator.69"* %__last to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %4, i8* %5, i32 4, i32 4, i1 false)
  %6 = load %"class.boost::detail::stored_edge_property"** %__result, align 4
  %7 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %call3 = invoke %"class.std::allocator.23"* @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.22"* %7)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %call5 = invoke %"class.boost::detail::stored_edge_property"* @_ZSt22__uninitialized_copy_aIN9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEEPS6_S6_ET0_T_SF_SE_RSaIT1_E(%"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %agg.tmp, %"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %agg.tmp2, %"class.boost::detail::stored_edge_property"* %6, %"class.std::allocator.23"* %call3)
          to label %invoke.cont4 unwind label %lpad

invoke.cont4:                                     ; preds = %invoke.cont
  %8 = load %"class.boost::detail::stored_edge_property"** %__result, align 4
  ret %"class.boost::detail::stored_edge_property"* %8

lpad:                                             ; preds = %invoke.cont, %entry
  %9 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  %10 = extractvalue { i8*, i32 } %9, 0
  store i8* %10, i8** %exn.slot
  %11 = extractvalue { i8*, i32 } %9, 1
  store i32 %11, i32* %ehselector.slot
  br label %catch

catch:                                            ; preds = %lpad
  %exn = load i8** %exn.slot
  %12 = call i8* @__cxa_begin_catch(i8* %exn) nounwind
  %13 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %14 = load %"class.boost::detail::stored_edge_property"** %__result, align 4
  %15 = load i32* %__n.addr, align 4
  invoke void @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE13_M_deallocateEPS4_j(%"struct.std::_Vector_base.22"* %13, %"class.boost::detail::stored_edge_property"* %14, i32 %15)
          to label %invoke.cont7 unwind label %lpad6

invoke.cont7:                                     ; preds = %catch
  invoke void @__cxa_rethrow() noreturn
          to label %unreachable unwind label %lpad6

lpad6:                                            ; preds = %invoke.cont7, %catch
  %16 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %17 = extractvalue { i8*, i32 } %16, 0
  store i8* %17, i8** %exn.slot
  %18 = extractvalue { i8*, i32 } %16, 1
  store i32 %18, i32* %ehselector.slot
  invoke void @__cxa_end_catch()
          to label %invoke.cont8 unwind label %terminate.lpad

invoke.cont8:                                     ; preds = %lpad6
  br label %eh.resume

try.cont:                                         ; No predecessors!
  call void @llvm.trap()
  unreachable

eh.resume:                                        ; preds = %invoke.cont8
  %exn9 = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn9, 0
  %lpad.val10 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val10

terminate.lpad:                                   ; preds = %lpad6
  %19 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable

unreachable:                                      ; preds = %invoke.cont7
  unreachable
}

define linkonce_odr void @_ZNKSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE5beginEv(%"class.__gnu_cxx::__normal_iterator.69"* noalias sret %agg.result, %"class.std::vector.21"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.21"*, align 4
  %ref.tmp = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.std::vector.21"* %this, %"class.std::vector.21"** %this.addr, align 4
  %this1 = load %"class.std::vector.21"** %this.addr
  %0 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.22"* %0, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %1 = load %"class.boost::detail::stored_edge_property"** %_M_start, align 4
  store %"class.boost::detail::stored_edge_property"* %1, %"class.boost::detail::stored_edge_property"** %ref.tmp, align 4
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEC1ERKS7_(%"class.__gnu_cxx::__normal_iterator.69"* %agg.result, %"class.boost::detail::stored_edge_property"** %ref.tmp)
  ret void
}

define linkonce_odr void @_ZNKSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE3endEv(%"class.__gnu_cxx::__normal_iterator.69"* noalias sret %agg.result, %"class.std::vector.21"* %this) align 2 {
entry:
  %this.addr = alloca %"class.std::vector.21"*, align 4
  %ref.tmp = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.std::vector.21"* %this, %"class.std::vector.21"** %this.addr, align 4
  %this1 = load %"class.std::vector.21"** %this.addr
  %0 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.22"* %0, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl, i32 0, i32 1
  %1 = load %"class.boost::detail::stored_edge_property"** %_M_finish, align 4
  store %"class.boost::detail::stored_edge_property"* %1, %"class.boost::detail::stored_edge_property"** %ref.tmp, align 4
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEC1ERKS7_(%"class.__gnu_cxx::__normal_iterator.69"* %agg.result, %"class.boost::detail::stored_edge_property"** %ref.tmp)
  ret void
}

define linkonce_odr void @_ZSt8_DestroyIN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEES6_EvT_SC_RSaIT0_E(%"class.__gnu_cxx::__normal_iterator"* byval align 4 %__first, %"class.__gnu_cxx::__normal_iterator"* byval align 4 %__last, %"class.std::allocator.23"*) inlinehint {
entry:
  %.addr = alloca %"class.std::allocator.23"*, align 4
  %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator", align 4
  %agg.tmp1 = alloca %"class.__gnu_cxx::__normal_iterator", align 4
  store %"class.std::allocator.23"* %0, %"class.std::allocator.23"** %.addr, align 4
  %1 = bitcast %"class.__gnu_cxx::__normal_iterator"* %agg.tmp to i8*
  %2 = bitcast %"class.__gnu_cxx::__normal_iterator"* %__first to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 4, i32 4, i1 false)
  %3 = bitcast %"class.__gnu_cxx::__normal_iterator"* %agg.tmp1 to i8*
  %4 = bitcast %"class.__gnu_cxx::__normal_iterator"* %__last to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %3, i8* %4, i32 4, i32 4, i1 false)
  call void @_ZSt8_DestroyIN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEEEvT_SC_(%"class.__gnu_cxx::__normal_iterator"* byval align 4 %agg.tmp, %"class.__gnu_cxx::__normal_iterator"* byval align 4 %agg.tmp1)
  ret void
}

define linkonce_odr void @_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEENS1_IPS6_SB_EEET0_T_SG_SF_(%"class.__gnu_cxx::__normal_iterator"* noalias sret %agg.result, %"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %__first, %"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %__last, %"class.__gnu_cxx::__normal_iterator"* byval align 4 %__result) inlinehint {
entry:
  %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator.69", align 4
  %agg.tmp1 = alloca %"class.__gnu_cxx::__normal_iterator.69", align 4
  %agg.tmp2 = alloca %"class.__gnu_cxx::__normal_iterator.69", align 4
  %agg.tmp3 = alloca %"class.__gnu_cxx::__normal_iterator.69", align 4
  %agg.tmp4 = alloca %"class.__gnu_cxx::__normal_iterator", align 4
  %0 = bitcast %"class.__gnu_cxx::__normal_iterator.69"* %agg.tmp1 to i8*
  %1 = bitcast %"class.__gnu_cxx::__normal_iterator.69"* %__first to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 4, i32 4, i1 false)
  call void @_ZSt12__miter_baseIN9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEEENSt11_Miter_baseIT_E13iterator_typeESE_(%"class.__gnu_cxx::__normal_iterator.69"* sret %agg.tmp, %"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %agg.tmp1)
  %2 = bitcast %"class.__gnu_cxx::__normal_iterator.69"* %agg.tmp3 to i8*
  %3 = bitcast %"class.__gnu_cxx::__normal_iterator.69"* %__last to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 4, i32 4, i1 false)
  call void @_ZSt12__miter_baseIN9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEEENSt11_Miter_baseIT_E13iterator_typeESE_(%"class.__gnu_cxx::__normal_iterator.69"* sret %agg.tmp2, %"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %agg.tmp3)
  %4 = bitcast %"class.__gnu_cxx::__normal_iterator"* %agg.tmp4 to i8*
  %5 = bitcast %"class.__gnu_cxx::__normal_iterator"* %__result to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %4, i8* %5, i32 4, i32 4, i1 false)
  call void @_ZSt14__copy_move_a2ILb0EN9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEENS1_IPS6_SB_EEET1_T0_SG_SF_(%"class.__gnu_cxx::__normal_iterator"* sret %agg.result, %"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %agg.tmp, %"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %agg.tmp2, %"class.__gnu_cxx::__normal_iterator"* byval align 4 %agg.tmp4)
  ret void
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZSt4copyIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEES5_ET0_T_S7_S6_(%"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"* %__result) inlinehint {
entry:
  %__first.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__last.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__result.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__result, %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %0 = load %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  %call = call %"class.boost::detail::stored_edge_property"* @_ZSt12__miter_baseIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEEENSt11_Miter_baseIT_E13iterator_typeES7_(%"class.boost::detail::stored_edge_property"* %0)
  %1 = load %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  %call1 = call %"class.boost::detail::stored_edge_property"* @_ZSt12__miter_baseIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEEENSt11_Miter_baseIT_E13iterator_typeES7_(%"class.boost::detail::stored_edge_property"* %1)
  %2 = load %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %call2 = call %"class.boost::detail::stored_edge_property"* @_ZSt14__copy_move_a2ILb0EPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEES5_ET1_T0_S7_S6_(%"class.boost::detail::stored_edge_property"* %call, %"class.boost::detail::stored_edge_property"* %call1, %"class.boost::detail::stored_edge_property"* %2)
  ret %"class.boost::detail::stored_edge_property"* %call2
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZSt14__copy_move_a2ILb0EPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEES5_ET1_T0_S7_S6_(%"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"* %__result) inlinehint {
entry:
  %__first.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__last.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__result.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  store %"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__result, %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %0 = load %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  %call = call %"class.boost::detail::stored_edge_property"* @_ZSt12__niter_baseIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEEENSt11_Niter_baseIT_E13iterator_typeES7_(%"class.boost::detail::stored_edge_property"* %0)
  %1 = load %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  %call1 = call %"class.boost::detail::stored_edge_property"* @_ZSt12__niter_baseIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEEENSt11_Niter_baseIT_E13iterator_typeES7_(%"class.boost::detail::stored_edge_property"* %1)
  %2 = load %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %call2 = call %"class.boost::detail::stored_edge_property"* @_ZSt12__niter_baseIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEEENSt11_Niter_baseIT_E13iterator_typeES7_(%"class.boost::detail::stored_edge_property"* %2)
  %call3 = call %"class.boost::detail::stored_edge_property"* @_ZSt13__copy_move_aILb0EPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEES5_ET1_T0_S7_S6_(%"class.boost::detail::stored_edge_property"* %call, %"class.boost::detail::stored_edge_property"* %call1, %"class.boost::detail::stored_edge_property"* %call2)
  ret %"class.boost::detail::stored_edge_property"* %call3
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZSt13__copy_move_aILb0EPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEES5_ET1_T0_S7_S6_(%"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"* %__result) inlinehint {
entry:
  %__first.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__last.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__result.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__simple = alloca i8, align 1
  store %"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__result, %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  store i8 0, i8* %__simple, align 1
  %0 = load %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  %1 = load %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  %2 = load %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %call = call %"class.boost::detail::stored_edge_property"* @_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE8__copy_mIPN5boost6detail20stored_edge_propertyIjNS3_11no_propertyEEES8_EET0_T_SA_S9_(%"class.boost::detail::stored_edge_property"* %0, %"class.boost::detail::stored_edge_property"* %1, %"class.boost::detail::stored_edge_property"* %2)
  ret %"class.boost::detail::stored_edge_property"* %call
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE8__copy_mIPN5boost6detail20stored_edge_propertyIjNS3_11no_propertyEEES8_EET0_T_SA_S9_(%"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"* %__result) align 2 {
entry:
  %__first.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__last.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__result.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__n = alloca i32, align 4
  store %"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__result, %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %0 = load %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  %1 = load %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  %sub.ptr.lhs.cast = ptrtoint %"class.boost::detail::stored_edge_property"* %0 to i32
  %sub.ptr.rhs.cast = ptrtoint %"class.boost::detail::stored_edge_property"* %1 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 8
  store i32 %sub.ptr.div, i32* %__n, align 4
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %2 = load i32* %__n, align 4
  %cmp = icmp sgt i32 %2, 0
  br i1 %cmp, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %3 = load %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %4 = load %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  %call = call %"class.boost::detail::stored_edge_property"* @_ZN5boost6detail20stored_edge_propertyIjNS_11no_propertyEEaSERKS3_(%"class.boost::detail::stored_edge_property"* %3, %"class.boost::detail::stored_edge_property"* %4)
  %5 = load %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  %incdec.ptr = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %5, i32 1
  store %"class.boost::detail::stored_edge_property"* %incdec.ptr, %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  %6 = load %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %incdec.ptr1 = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %6, i32 1
  store %"class.boost::detail::stored_edge_property"* %incdec.ptr1, %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  br label %for.inc

for.inc:                                          ; preds = %for.body
  %7 = load i32* %__n, align 4
  %dec = add nsw i32 %7, -1
  store i32 %dec, i32* %__n, align 4
  br label %for.cond

for.end:                                          ; preds = %for.cond
  %8 = load %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  ret %"class.boost::detail::stored_edge_property"* %8
}

define linkonce_odr void @_ZSt14__copy_move_a2ILb0EN9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEENS1_IPS6_SB_EEET1_T0_SG_SF_(%"class.__gnu_cxx::__normal_iterator"* noalias sret %agg.result, %"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %__first, %"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %__last, %"class.__gnu_cxx::__normal_iterator"* byval align 4 %__result) inlinehint {
entry:
  %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator.69", align 4
  %agg.tmp1 = alloca %"class.__gnu_cxx::__normal_iterator.69", align 4
  %agg.tmp3 = alloca %"class.__gnu_cxx::__normal_iterator", align 4
  %ref.tmp = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %0 = bitcast %"class.__gnu_cxx::__normal_iterator.69"* %agg.tmp to i8*
  %1 = bitcast %"class.__gnu_cxx::__normal_iterator.69"* %__first to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 4, i32 4, i1 false)
  %call = call %"class.boost::detail::stored_edge_property"* @_ZSt12__niter_baseIN9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEEENSt11_Niter_baseIT_E13iterator_typeESE_(%"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %agg.tmp)
  %2 = bitcast %"class.__gnu_cxx::__normal_iterator.69"* %agg.tmp1 to i8*
  %3 = bitcast %"class.__gnu_cxx::__normal_iterator.69"* %__last to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 4, i32 4, i1 false)
  %call2 = call %"class.boost::detail::stored_edge_property"* @_ZSt12__niter_baseIN9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEEENSt11_Niter_baseIT_E13iterator_typeESE_(%"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %agg.tmp1)
  %4 = bitcast %"class.__gnu_cxx::__normal_iterator"* %agg.tmp3 to i8*
  %5 = bitcast %"class.__gnu_cxx::__normal_iterator"* %__result to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %4, i8* %5, i32 4, i32 4, i1 false)
  %call4 = call %"class.boost::detail::stored_edge_property"* @_ZSt12__niter_baseIN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEEENSt11_Niter_baseIT_E13iterator_typeESD_(%"class.__gnu_cxx::__normal_iterator"* byval align 4 %agg.tmp3)
  %call5 = call %"class.boost::detail::stored_edge_property"* @_ZSt13__copy_move_aILb0EPKN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEEPS4_ET1_T0_S9_S8_(%"class.boost::detail::stored_edge_property"* %call, %"class.boost::detail::stored_edge_property"* %call2, %"class.boost::detail::stored_edge_property"* %call4)
  store %"class.boost::detail::stored_edge_property"* %call5, %"class.boost::detail::stored_edge_property"** %ref.tmp, align 4
  call void @_ZN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEC1ERKS6_(%"class.__gnu_cxx::__normal_iterator"* %agg.result, %"class.boost::detail::stored_edge_property"** %ref.tmp)
  ret void
}

define linkonce_odr void @_ZSt12__miter_baseIN9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEEENSt11_Miter_baseIT_E13iterator_typeESE_(%"class.__gnu_cxx::__normal_iterator.69"* noalias sret %agg.result, %"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %__it) inlinehint {
entry:
  %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator.69", align 4
  %0 = bitcast %"class.__gnu_cxx::__normal_iterator.69"* %agg.tmp to i8*
  %1 = bitcast %"class.__gnu_cxx::__normal_iterator.69"* %__it to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 4, i32 4, i1 false)
  call void @_ZNSt10_Iter_baseIN9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEELb0EE7_S_baseESC_(%"class.__gnu_cxx::__normal_iterator.69"* sret %agg.result, %"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %agg.tmp)
  ret void
}

define linkonce_odr void @_ZNSt10_Iter_baseIN9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEELb0EE7_S_baseESC_(%"class.__gnu_cxx::__normal_iterator.69"* noalias sret %agg.result, %"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %__it) nounwind align 2 {
entry:
  %0 = bitcast %"class.__gnu_cxx::__normal_iterator.69"* %agg.result to i8*
  %1 = bitcast %"class.__gnu_cxx::__normal_iterator.69"* %__it to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 4, i32 4, i1 false)
  ret void
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZSt13__copy_move_aILb0EPKN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEEPS4_ET1_T0_S9_S8_(%"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"* %__result) inlinehint {
entry:
  %__first.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__last.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__result.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__simple = alloca i8, align 1
  store %"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__result, %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  store i8 0, i8* %__simple, align 1
  %0 = load %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  %1 = load %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  %2 = load %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %call = call %"class.boost::detail::stored_edge_property"* @_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE8__copy_mIPKN5boost6detail20stored_edge_propertyIjNS3_11no_propertyEEEPS7_EET0_T_SC_SB_(%"class.boost::detail::stored_edge_property"* %0, %"class.boost::detail::stored_edge_property"* %1, %"class.boost::detail::stored_edge_property"* %2)
  ret %"class.boost::detail::stored_edge_property"* %call
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZSt12__niter_baseIN9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEEENSt11_Niter_baseIT_E13iterator_typeESE_(%"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %__it) inlinehint {
entry:
  %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator.69", align 4
  %0 = bitcast %"class.__gnu_cxx::__normal_iterator.69"* %agg.tmp to i8*
  %1 = bitcast %"class.__gnu_cxx::__normal_iterator.69"* %__it to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 4, i32 4, i1 false)
  %call = call %"class.boost::detail::stored_edge_property"* @_ZNSt10_Iter_baseIN9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEELb1EE7_S_baseESC_(%"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %agg.tmp)
  ret %"class.boost::detail::stored_edge_property"* %call
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZSt12__niter_baseIN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEEENSt11_Niter_baseIT_E13iterator_typeESD_(%"class.__gnu_cxx::__normal_iterator"* byval align 4 %__it) inlinehint {
entry:
  %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator", align 4
  %0 = bitcast %"class.__gnu_cxx::__normal_iterator"* %agg.tmp to i8*
  %1 = bitcast %"class.__gnu_cxx::__normal_iterator"* %__it to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 4, i32 4, i1 false)
  %call = call %"class.boost::detail::stored_edge_property"* @_ZNSt10_Iter_baseIN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEELb1EE7_S_baseESB_(%"class.__gnu_cxx::__normal_iterator"* byval align 4 %agg.tmp)
  ret %"class.boost::detail::stored_edge_property"* %call
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZNSt10_Iter_baseIN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEELb1EE7_S_baseESB_(%"class.__gnu_cxx::__normal_iterator"* byval align 4 %__it) nounwind align 2 {
entry:
  %call = call %"class.boost::detail::stored_edge_property"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator"* %__it)
  %0 = load %"class.boost::detail::stored_edge_property"** %call
  ret %"class.boost::detail::stored_edge_property"* %0
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZNSt10_Iter_baseIN9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEELb1EE7_S_baseESC_(%"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %__it) align 2 {
entry:
  %call = call %"class.boost::detail::stored_edge_property"** @_ZNK9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.69"* %__it)
  %0 = load %"class.boost::detail::stored_edge_property"** %call
  ret %"class.boost::detail::stored_edge_property"* %0
}

define linkonce_odr %"class.boost::detail::stored_edge_property"** @_ZNK9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.69"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator.69"*, align 4
  store %"class.__gnu_cxx::__normal_iterator.69"* %this, %"class.__gnu_cxx::__normal_iterator.69"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator.69"** %this.addr
  %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.69"* %this1, i32 0, i32 0
  ret %"class.boost::detail::stored_edge_property"** %_M_current
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZNSt11__copy_moveILb0ELb0ESt26random_access_iterator_tagE8__copy_mIPKN5boost6detail20stored_edge_propertyIjNS3_11no_propertyEEEPS7_EET0_T_SC_SB_(%"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"* %__result) align 2 {
entry:
  %__first.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__last.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__result.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__n = alloca i32, align 4
  store %"class.boost::detail::stored_edge_property"* %__first, %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__last, %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %__result, %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %0 = load %"class.boost::detail::stored_edge_property"** %__last.addr, align 4
  %1 = load %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  %sub.ptr.lhs.cast = ptrtoint %"class.boost::detail::stored_edge_property"* %0 to i32
  %sub.ptr.rhs.cast = ptrtoint %"class.boost::detail::stored_edge_property"* %1 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 8
  store i32 %sub.ptr.div, i32* %__n, align 4
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %2 = load i32* %__n, align 4
  %cmp = icmp sgt i32 %2, 0
  br i1 %cmp, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %3 = load %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %4 = load %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  %call = call %"class.boost::detail::stored_edge_property"* @_ZN5boost6detail20stored_edge_propertyIjNS_11no_propertyEEaSERKS3_(%"class.boost::detail::stored_edge_property"* %3, %"class.boost::detail::stored_edge_property"* %4)
  %5 = load %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  %incdec.ptr = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %5, i32 1
  store %"class.boost::detail::stored_edge_property"* %incdec.ptr, %"class.boost::detail::stored_edge_property"** %__first.addr, align 4
  %6 = load %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %incdec.ptr1 = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %6, i32 1
  store %"class.boost::detail::stored_edge_property"* %incdec.ptr1, %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  br label %for.inc

for.inc:                                          ; preds = %for.body
  %7 = load i32* %__n, align 4
  %dec = add nsw i32 %7, -1
  store i32 %dec, i32* %__n, align 4
  br label %for.cond

for.end:                                          ; preds = %for.cond
  %8 = load %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  ret %"class.boost::detail::stored_edge_property"* %8
}

define linkonce_odr void @_ZSt8_DestroyIN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEEEvT_SC_(%"class.__gnu_cxx::__normal_iterator"* byval align 4 %__first, %"class.__gnu_cxx::__normal_iterator"* byval align 4 %__last) inlinehint {
entry:
  %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator", align 4
  %agg.tmp1 = alloca %"class.__gnu_cxx::__normal_iterator", align 4
  %0 = bitcast %"class.__gnu_cxx::__normal_iterator"* %agg.tmp to i8*
  %1 = bitcast %"class.__gnu_cxx::__normal_iterator"* %__first to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 4, i32 4, i1 false)
  %2 = bitcast %"class.__gnu_cxx::__normal_iterator"* %agg.tmp1 to i8*
  %3 = bitcast %"class.__gnu_cxx::__normal_iterator"* %__last to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 4, i32 4, i1 false)
  call void @_ZNSt12_Destroy_auxILb0EE9__destroyIN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS4_11no_propertyEEESt6vectorIS8_SaIS8_EEEEEEvT_SE_(%"class.__gnu_cxx::__normal_iterator"* byval align 4 %agg.tmp, %"class.__gnu_cxx::__normal_iterator"* byval align 4 %agg.tmp1)
  ret void
}

define linkonce_odr void @_ZNSt12_Destroy_auxILb0EE9__destroyIN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS4_11no_propertyEEESt6vectorIS8_SaIS8_EEEEEEvT_SE_(%"class.__gnu_cxx::__normal_iterator"* byval align 4 %__first, %"class.__gnu_cxx::__normal_iterator"* byval align 4 %__last) align 2 {
entry:
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %call = call zeroext i1 @_ZN9__gnu_cxxneIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(%"class.__gnu_cxx::__normal_iterator"* %__first, %"class.__gnu_cxx::__normal_iterator"* %__last)
  br i1 %call, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %call1 = call %"class.boost::detail::stored_edge_property"* @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEdeEv(%"class.__gnu_cxx::__normal_iterator"* %__first)
  %call2 = call %"class.boost::detail::stored_edge_property"* @_ZSt11__addressofIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEEEPT_RS5_(%"class.boost::detail::stored_edge_property"* %call1)
  call void @_ZSt8_DestroyIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEEEvPT_(%"class.boost::detail::stored_edge_property"* %call2)
  br label %for.inc

for.inc:                                          ; preds = %for.body
  %call3 = call %"class.__gnu_cxx::__normal_iterator"* @_ZN9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEppEv(%"class.__gnu_cxx::__normal_iterator"* %__first)
  br label %for.cond

for.end:                                          ; preds = %for.cond
  ret void
}

define linkonce_odr zeroext i1 @_ZN9__gnu_cxxneIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(%"class.__gnu_cxx::__normal_iterator"* %__lhs, %"class.__gnu_cxx::__normal_iterator"* %__rhs) nounwind inlinehint {
entry:
  %__lhs.addr = alloca %"class.__gnu_cxx::__normal_iterator"*, align 4
  %__rhs.addr = alloca %"class.__gnu_cxx::__normal_iterator"*, align 4
  store %"class.__gnu_cxx::__normal_iterator"* %__lhs, %"class.__gnu_cxx::__normal_iterator"** %__lhs.addr, align 4
  store %"class.__gnu_cxx::__normal_iterator"* %__rhs, %"class.__gnu_cxx::__normal_iterator"** %__rhs.addr, align 4
  %0 = load %"class.__gnu_cxx::__normal_iterator"** %__lhs.addr, align 4
  %call = call %"class.boost::detail::stored_edge_property"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator"* %0)
  %1 = load %"class.boost::detail::stored_edge_property"** %call
  %2 = load %"class.__gnu_cxx::__normal_iterator"** %__rhs.addr, align 4
  %call1 = call %"class.boost::detail::stored_edge_property"** @_ZNK9__gnu_cxx17__normal_iteratorIPN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator"* %2)
  %3 = load %"class.boost::detail::stored_edge_property"** %call1
  %cmp = icmp ne %"class.boost::detail::stored_edge_property"* %1, %3
  ret i1 %cmp
}

define linkonce_odr void @_ZN9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEC1ERKS7_(%"class.__gnu_cxx::__normal_iterator.69"* %this, %"class.boost::detail::stored_edge_property"** %__i) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator.69"*, align 4
  %__i.addr = alloca %"class.boost::detail::stored_edge_property"**, align 4
  store %"class.__gnu_cxx::__normal_iterator.69"* %this, %"class.__gnu_cxx::__normal_iterator.69"** %this.addr, align 4
  store %"class.boost::detail::stored_edge_property"** %__i, %"class.boost::detail::stored_edge_property"*** %__i.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator.69"** %this.addr
  %0 = load %"class.boost::detail::stored_edge_property"*** %__i.addr
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEC2ERKS7_(%"class.__gnu_cxx::__normal_iterator.69"* %this1, %"class.boost::detail::stored_edge_property"** %0)
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEC2ERKS7_(%"class.__gnu_cxx::__normal_iterator.69"* %this, %"class.boost::detail::stored_edge_property"** %__i) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator.69"*, align 4
  %__i.addr = alloca %"class.boost::detail::stored_edge_property"**, align 4
  store %"class.__gnu_cxx::__normal_iterator.69"* %this, %"class.__gnu_cxx::__normal_iterator.69"** %this.addr, align 4
  store %"class.boost::detail::stored_edge_property"** %__i, %"class.boost::detail::stored_edge_property"*** %__i.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator.69"** %this.addr
  %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.69"* %this1, i32 0, i32 0
  %0 = load %"class.boost::detail::stored_edge_property"*** %__i.addr, align 4
  %1 = load %"class.boost::detail::stored_edge_property"** %0, align 4
  store %"class.boost::detail::stored_edge_property"* %1, %"class.boost::detail::stored_edge_property"** %_M_current, align 4
  ret void
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZSt22__uninitialized_copy_aIN9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEEPS6_S6_ET0_T_SF_SE_RSaIT1_E(%"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %__first, %"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %__last, %"class.boost::detail::stored_edge_property"* %__result, %"class.std::allocator.23"*) inlinehint {
entry:
  %__result.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %.addr = alloca %"class.std::allocator.23"*, align 4
  %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator.69", align 4
  %agg.tmp1 = alloca %"class.__gnu_cxx::__normal_iterator.69", align 4
  store %"class.boost::detail::stored_edge_property"* %__result, %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  store %"class.std::allocator.23"* %0, %"class.std::allocator.23"** %.addr, align 4
  %1 = bitcast %"class.__gnu_cxx::__normal_iterator.69"* %agg.tmp to i8*
  %2 = bitcast %"class.__gnu_cxx::__normal_iterator.69"* %__first to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* %2, i32 4, i32 4, i1 false)
  %3 = bitcast %"class.__gnu_cxx::__normal_iterator.69"* %agg.tmp1 to i8*
  %4 = bitcast %"class.__gnu_cxx::__normal_iterator.69"* %__last to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %3, i8* %4, i32 4, i32 4, i1 false)
  %5 = load %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %call = call %"class.boost::detail::stored_edge_property"* @_ZSt18uninitialized_copyIN9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEEPS6_ET0_T_SF_SE_(%"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %agg.tmp, %"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %agg.tmp1, %"class.boost::detail::stored_edge_property"* %5)
  ret %"class.boost::detail::stored_edge_property"* %call
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZSt18uninitialized_copyIN9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEEPS6_ET0_T_SF_SE_(%"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %__first, %"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %__last, %"class.boost::detail::stored_edge_property"* %__result) inlinehint {
entry:
  %__result.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator.69", align 4
  %agg.tmp1 = alloca %"class.__gnu_cxx::__normal_iterator.69", align 4
  store %"class.boost::detail::stored_edge_property"* %__result, %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %0 = bitcast %"class.__gnu_cxx::__normal_iterator.69"* %agg.tmp to i8*
  %1 = bitcast %"class.__gnu_cxx::__normal_iterator.69"* %__first to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %0, i8* %1, i32 4, i32 4, i1 false)
  %2 = bitcast %"class.__gnu_cxx::__normal_iterator.69"* %agg.tmp1 to i8*
  %3 = bitcast %"class.__gnu_cxx::__normal_iterator.69"* %__last to i8*
  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %2, i8* %3, i32 4, i32 4, i1 false)
  %4 = load %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %call = call %"class.boost::detail::stored_edge_property"* @_ZNSt20__uninitialized_copyILb0EE13__uninit_copyIN9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS4_11no_propertyEEESt6vectorIS8_SaIS8_EEEEPS8_EET0_T_SH_SG_(%"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %agg.tmp, %"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %agg.tmp1, %"class.boost::detail::stored_edge_property"* %4)
  ret %"class.boost::detail::stored_edge_property"* %call
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZNSt20__uninitialized_copyILb0EE13__uninit_copyIN9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS4_11no_propertyEEESt6vectorIS8_SaIS8_EEEEPS8_EET0_T_SH_SG_(%"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %__first, %"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %__last, %"class.boost::detail::stored_edge_property"* %__result) align 2 {
entry:
  %__result.addr = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %__cur = alloca %"class.boost::detail::stored_edge_property"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.boost::detail::stored_edge_property"* %__result, %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %0 = load %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  store %"class.boost::detail::stored_edge_property"* %0, %"class.boost::detail::stored_edge_property"** %__cur, align 4
  br label %for.cond

for.cond:                                         ; preds = %invoke.cont6, %entry
  %call = invoke zeroext i1 @_ZN9__gnu_cxxneIPKN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(%"class.__gnu_cxx::__normal_iterator.69"* %__first, %"class.__gnu_cxx::__normal_iterator.69"* %__last)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %for.cond
  br i1 %call, label %for.body, label %for.end

for.body:                                         ; preds = %invoke.cont
  %1 = load %"class.boost::detail::stored_edge_property"** %__cur, align 4
  %call2 = invoke %"class.boost::detail::stored_edge_property"* @_ZSt11__addressofIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEEEPT_RS5_(%"class.boost::detail::stored_edge_property"* %1)
          to label %invoke.cont1 unwind label %lpad

invoke.cont1:                                     ; preds = %for.body
  %call4 = invoke %"class.boost::detail::stored_edge_property"* @_ZNK9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEdeEv(%"class.__gnu_cxx::__normal_iterator.69"* %__first)
          to label %invoke.cont3 unwind label %lpad

invoke.cont3:                                     ; preds = %invoke.cont1
  invoke void @_ZSt10_ConstructIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEES4_EvPT_RKT0_(%"class.boost::detail::stored_edge_property"* %call2, %"class.boost::detail::stored_edge_property"* %call4)
          to label %invoke.cont5 unwind label %lpad

invoke.cont5:                                     ; preds = %invoke.cont3
  br label %for.inc

for.inc:                                          ; preds = %invoke.cont5
  %call7 = invoke %"class.__gnu_cxx::__normal_iterator.69"* @_ZN9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEppEv(%"class.__gnu_cxx::__normal_iterator.69"* %__first)
          to label %invoke.cont6 unwind label %lpad

invoke.cont6:                                     ; preds = %for.inc
  %2 = load %"class.boost::detail::stored_edge_property"** %__cur, align 4
  %incdec.ptr = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %2, i32 1
  store %"class.boost::detail::stored_edge_property"* %incdec.ptr, %"class.boost::detail::stored_edge_property"** %__cur, align 4
  br label %for.cond

lpad:                                             ; preds = %for.inc, %invoke.cont3, %invoke.cont1, %for.body, %for.cond
  %3 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  %4 = extractvalue { i8*, i32 } %3, 0
  store i8* %4, i8** %exn.slot
  %5 = extractvalue { i8*, i32 } %3, 1
  store i32 %5, i32* %ehselector.slot
  br label %catch

catch:                                            ; preds = %lpad
  %exn = load i8** %exn.slot
  %6 = call i8* @__cxa_begin_catch(i8* %exn) nounwind
  %7 = load %"class.boost::detail::stored_edge_property"** %__result.addr, align 4
  %8 = load %"class.boost::detail::stored_edge_property"** %__cur, align 4
  invoke void @_ZSt8_DestroyIPN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEEEvT_S6_(%"class.boost::detail::stored_edge_property"* %7, %"class.boost::detail::stored_edge_property"* %8)
          to label %invoke.cont9 unwind label %lpad8

invoke.cont9:                                     ; preds = %catch
  invoke void @__cxa_rethrow() noreturn
          to label %unreachable unwind label %lpad8

for.end:                                          ; preds = %invoke.cont
  %9 = load %"class.boost::detail::stored_edge_property"** %__cur, align 4
  ret %"class.boost::detail::stored_edge_property"* %9

lpad8:                                            ; preds = %invoke.cont9, %catch
  %10 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %11 = extractvalue { i8*, i32 } %10, 0
  store i8* %11, i8** %exn.slot
  %12 = extractvalue { i8*, i32 } %10, 1
  store i32 %12, i32* %ehselector.slot
  invoke void @__cxa_end_catch()
          to label %invoke.cont10 unwind label %terminate.lpad

invoke.cont10:                                    ; preds = %lpad8
  br label %eh.resume

try.cont:                                         ; No predecessors!
  call void @llvm.trap()
  unreachable

eh.resume:                                        ; preds = %invoke.cont10
  %exn11 = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn11, 0
  %lpad.val12 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val12

terminate.lpad:                                   ; preds = %lpad8
  %13 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable

unreachable:                                      ; preds = %invoke.cont9
  unreachable
}

define linkonce_odr zeroext i1 @_ZN9__gnu_cxxneIPKN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(%"class.__gnu_cxx::__normal_iterator.69"* %__lhs, %"class.__gnu_cxx::__normal_iterator.69"* %__rhs) nounwind inlinehint {
entry:
  %__lhs.addr = alloca %"class.__gnu_cxx::__normal_iterator.69"*, align 4
  %__rhs.addr = alloca %"class.__gnu_cxx::__normal_iterator.69"*, align 4
  store %"class.__gnu_cxx::__normal_iterator.69"* %__lhs, %"class.__gnu_cxx::__normal_iterator.69"** %__lhs.addr, align 4
  store %"class.__gnu_cxx::__normal_iterator.69"* %__rhs, %"class.__gnu_cxx::__normal_iterator.69"** %__rhs.addr, align 4
  %0 = load %"class.__gnu_cxx::__normal_iterator.69"** %__lhs.addr, align 4
  %call = call %"class.boost::detail::stored_edge_property"** @_ZNK9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.69"* %0)
  %1 = load %"class.boost::detail::stored_edge_property"** %call
  %2 = load %"class.__gnu_cxx::__normal_iterator.69"** %__rhs.addr, align 4
  %call1 = call %"class.boost::detail::stored_edge_property"** @_ZNK9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEE4baseEv(%"class.__gnu_cxx::__normal_iterator.69"* %2)
  %3 = load %"class.boost::detail::stored_edge_property"** %call1
  %cmp = icmp ne %"class.boost::detail::stored_edge_property"* %1, %3
  ret i1 %cmp
}

define linkonce_odr %"class.boost::detail::stored_edge_property"* @_ZNK9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEdeEv(%"class.__gnu_cxx::__normal_iterator.69"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator.69"*, align 4
  store %"class.__gnu_cxx::__normal_iterator.69"* %this, %"class.__gnu_cxx::__normal_iterator.69"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator.69"** %this.addr
  %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.69"* %this1, i32 0, i32 0
  %0 = load %"class.boost::detail::stored_edge_property"** %_M_current, align 4
  ret %"class.boost::detail::stored_edge_property"* %0
}

define linkonce_odr %"class.__gnu_cxx::__normal_iterator.69"* @_ZN9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEESt6vectorIS5_SaIS5_EEEppEv(%"class.__gnu_cxx::__normal_iterator.69"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::__normal_iterator.69"*, align 4
  store %"class.__gnu_cxx::__normal_iterator.69"* %this, %"class.__gnu_cxx::__normal_iterator.69"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::__normal_iterator.69"** %this.addr
  %_M_current = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.69"* %this1, i32 0, i32 0
  %0 = load %"class.boost::detail::stored_edge_property"** %_M_current, align 4
  %incdec.ptr = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %0, i32 1
  store %"class.boost::detail::stored_edge_property"* %incdec.ptr, %"class.boost::detail::stored_edge_property"** %_M_current, align 4
  ret %"class.__gnu_cxx::__normal_iterator.69"* %this1
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt23__copy_move_backward_a2ILb0EPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESC_ET1_T0_SE_SD_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__result) inlinehint {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__last.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__result.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__result, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt12__niter_baseIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexEENSt11_Niter_baseIT_E13iterator_typeESE_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %0)
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  %call1 = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt12__niter_baseIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexEENSt11_Niter_baseIT_E13iterator_typeESE_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %1)
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  %call2 = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt12__niter_baseIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexEENSt11_Niter_baseIT_E13iterator_typeESE_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %2)
  %call3 = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt22__copy_move_backward_aILb0EPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESC_ET1_T0_SE_SD_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %call, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %call1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %call2)
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %call3
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt12__miter_baseIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexEENSt11_Miter_baseIT_E13iterator_typeESE_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__it) nounwind inlinehint {
entry:
  %__it.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__it, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__it.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__it.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZNSt10_Iter_baseIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexELb0EE7_S_baseESC_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %0)
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %call
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt22__copy_move_backward_aILb0EPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESC_ET1_T0_SE_SD_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__result) inlinehint {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__last.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__result.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__simple = alloca i8, align 1
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__result, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  store i8 0, i8* %__simple, align 1
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZNSt20__copy_move_backwardILb0ELb0ESt26random_access_iterator_tagE13__copy_move_bIPN5boost6detail12adj_list_genINS3_14adjacency_listINS3_4vecSES7_NS3_9directedSENS3_11no_propertyES9_S9_NS3_5listSEEES7_S7_S8_S9_S9_S9_SA_E6config13stored_vertexESF_EET0_T_SH_SG_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %0, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %2)
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %call
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZNSt20__copy_move_backwardILb0ELb0ESt26random_access_iterator_tagE13__copy_move_bIPN5boost6detail12adj_list_genINS3_14adjacency_listINS3_4vecSES7_NS3_9directedSENS3_11no_propertyES9_S9_NS3_5listSEEES7_S7_S8_S9_S9_S9_SA_E6config13stored_vertexESF_EET0_T_SH_SG_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__result) align 2 {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__last.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__result.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__n = alloca i32, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__result, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %sub.ptr.lhs.cast = ptrtoint %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %0 to i32
  %sub.ptr.rhs.cast = ptrtoint %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %1 to i32
  %sub.ptr.sub = sub i32 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast
  %sub.ptr.div = sdiv exact i32 %sub.ptr.sub, 16
  store i32 %sub.ptr.div, i32* %__n, align 4
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %2 = load i32* %__n, align 4
  %cmp = icmp sgt i32 %2, 0
  br i1 %cmp, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %3 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  %incdec.ptr = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %3, i32 -1
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %incdec.ptr, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  %4 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  %incdec.ptr1 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %4, i32 -1
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %incdec.ptr1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexaSERKSA_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %incdec.ptr, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %incdec.ptr1)
  br label %for.inc

for.inc:                                          ; preds = %for.body
  %5 = load i32* %__n, align 4
  %dec = add nsw i32 %5, -1
  store i32 %dec, i32* %__n, align 4
  br label %for.cond

for.end:                                          ; preds = %for.cond
  %6 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %6
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt22__uninitialized_copy_aIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESC_SB_ET0_T_SE_SD_RSaIT1_E(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__result, %"class.std::allocator.0"*) inlinehint {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__last.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__result.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %.addr = alloca %"class.std::allocator.0"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__result, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  store %"class.std::allocator.0"* %0, %"class.std::allocator.0"** %.addr, align 4
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  %3 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt18uninitialized_copyIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESC_ET0_T_SE_SD_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %2, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %3)
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %call
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt18uninitialized_copyIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESC_ET0_T_SE_SD_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__result) inlinehint {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__last.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__result.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__result, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  %call = call %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZNSt20__uninitialized_copyILb0EE13__uninit_copyIPN5boost6detail12adj_list_genINS2_14adjacency_listINS2_4vecSES6_NS2_9directedSENS2_11no_propertyES8_S8_NS2_5listSEEES6_S6_S7_S8_S8_S8_S9_E6config13stored_vertexESE_EET0_T_SG_SF_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %0, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %2)
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %call
}

define linkonce_odr %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZNSt20__uninitialized_copyILb0EE13__uninit_copyIPN5boost6detail12adj_list_genINS2_14adjacency_listINS2_4vecSES6_NS2_9directedSENS2_11no_propertyES8_S8_NS2_5listSEEES6_S6_S7_S8_S8_S8_S9_E6config13stored_vertexESE_EET0_T_SG_SF_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__result) align 2 {
entry:
  %__first.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__last.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__result.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__cur = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__first, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__last, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__result, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  %0 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %0, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__cur, align 4
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__last.addr, align 4
  %cmp = icmp ne %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %1, %2
  br i1 %cmp, label %for.body, label %for.end

for.body:                                         ; preds = %for.cond
  %3 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__cur, align 4
  %call = invoke %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZSt11__addressofIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexEEPT_RSC_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %3)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %for.body
  %4 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  invoke void @_ZSt10_ConstructIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESB_EvPT_RKT0_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %call, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %4)
          to label %invoke.cont1 unwind label %lpad

invoke.cont1:                                     ; preds = %invoke.cont
  br label %for.inc

for.inc:                                          ; preds = %invoke.cont1
  %5 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %incdec.ptr = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %5, i32 1
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %incdec.ptr, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__first.addr, align 4
  %6 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__cur, align 4
  %incdec.ptr2 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %6, i32 1
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %incdec.ptr2, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__cur, align 4
  br label %for.cond

lpad:                                             ; preds = %invoke.cont, %for.body
  %7 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  %8 = extractvalue { i8*, i32 } %7, 0
  store i8* %8, i8** %exn.slot
  %9 = extractvalue { i8*, i32 } %7, 1
  store i32 %9, i32* %ehselector.slot
  br label %catch

catch:                                            ; preds = %lpad
  %exn = load i8** %exn.slot
  %10 = call i8* @__cxa_begin_catch(i8* %exn) nounwind
  %11 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__result.addr, align 4
  %12 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__cur, align 4
  invoke void @_ZSt8_DestroyIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexEEvT_SD_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %11, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %12)
          to label %invoke.cont4 unwind label %lpad3

invoke.cont4:                                     ; preds = %catch
  invoke void @__cxa_rethrow() noreturn
          to label %unreachable unwind label %lpad3

for.end:                                          ; preds = %for.cond
  %13 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__cur, align 4
  ret %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %13

lpad3:                                            ; preds = %invoke.cont4, %catch
  %14 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %15 = extractvalue { i8*, i32 } %14, 0
  store i8* %15, i8** %exn.slot
  %16 = extractvalue { i8*, i32 } %14, 1
  store i32 %16, i32* %ehselector.slot
  invoke void @__cxa_end_catch()
          to label %invoke.cont5 unwind label %terminate.lpad

invoke.cont5:                                     ; preds = %lpad3
  br label %eh.resume

try.cont:                                         ; No predecessors!
  call void @llvm.trap()
  unreachable

eh.resume:                                        ; preds = %invoke.cont5
  %exn6 = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn6, 0
  %lpad.val7 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val7

terminate.lpad:                                   ; preds = %lpad3
  %17 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable

unreachable:                                      ; preds = %invoke.cont4
  unreachable
}

define linkonce_odr void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexC2ERKSA_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %this.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %0, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %.addr, align 4
  %this1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %this.addr
  %1 = bitcast %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %this1 to %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"*
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %.addr, align 4
  %3 = bitcast %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %2 to %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"*
  call void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config18rand_stored_vertexC2ERKSA_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* %1, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* %3)
  ret void
}

define linkonce_odr void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config18rand_stored_vertexC2ERKSA_(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"*) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"*, align 4
  %.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"** %this.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* %0, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"** %.addr, align 4
  %this1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"** %this.addr
  %m_out_edges = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this1, i32 0, i32 0
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"** %.addr, align 4
  %m_out_edges2 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* %1, i32 0, i32 0
  call void @_ZNSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EEC1ERKS6_(%"class.std::vector.21"* %m_out_edges, %"class.std::vector.21"* %m_out_edges2)
  %m_property = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this1, i32 0, i32 1
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"** %.addr, align 4
  %m_property3 = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* %2, i32 0, i32 1
  ret void
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EEC1ERKS6_(%"class.std::vector.21"* %this, %"class.std::vector.21"* %__x) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector.21"*, align 4
  %__x.addr = alloca %"class.std::vector.21"*, align 4
  store %"class.std::vector.21"* %this, %"class.std::vector.21"** %this.addr, align 4
  store %"class.std::vector.21"* %__x, %"class.std::vector.21"** %__x.addr, align 4
  %this1 = load %"class.std::vector.21"** %this.addr
  %0 = load %"class.std::vector.21"** %__x.addr
  call void @_ZNSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EEC2ERKS6_(%"class.std::vector.21"* %this1, %"class.std::vector.21"* %0)
  ret void
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EEC2ERKS6_(%"class.std::vector.21"* %this, %"class.std::vector.21"* %__x) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector.21"*, align 4
  %__x.addr = alloca %"class.std::vector.21"*, align 4
  %agg.tmp = alloca %"class.__gnu_cxx::__normal_iterator.69", align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  %agg.tmp3 = alloca %"class.__gnu_cxx::__normal_iterator.69", align 4
  store %"class.std::vector.21"* %this, %"class.std::vector.21"** %this.addr, align 4
  store %"class.std::vector.21"* %__x, %"class.std::vector.21"** %__x.addr, align 4
  %this1 = load %"class.std::vector.21"** %this.addr
  %0 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %1 = load %"class.std::vector.21"** %__x.addr, align 4
  %call = call i32 @_ZNKSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE4sizeEv(%"class.std::vector.21"* %1)
  %2 = load %"class.std::vector.21"** %__x.addr, align 4
  %3 = bitcast %"class.std::vector.21"* %2 to %"struct.std::_Vector_base.22"*
  %call2 = call %"class.std::allocator.23"* @_ZNKSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.22"* %3)
  call void @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EEC2EjRKS5_(%"struct.std::_Vector_base.22"* %0, i32 %call, %"class.std::allocator.23"* %call2)
  %4 = load %"class.std::vector.21"** %__x.addr, align 4
  invoke void @_ZNKSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE5beginEv(%"class.__gnu_cxx::__normal_iterator.69"* sret %agg.tmp, %"class.std::vector.21"* %4)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %5 = load %"class.std::vector.21"** %__x.addr, align 4
  invoke void @_ZNKSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE3endEv(%"class.__gnu_cxx::__normal_iterator.69"* sret %agg.tmp3, %"class.std::vector.21"* %5)
          to label %invoke.cont4 unwind label %lpad

invoke.cont4:                                     ; preds = %invoke.cont
  %6 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.22"* %6, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %7 = load %"class.boost::detail::stored_edge_property"** %_M_start, align 4
  %8 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %call6 = invoke %"class.std::allocator.23"* @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base.22"* %8)
          to label %invoke.cont5 unwind label %lpad

invoke.cont5:                                     ; preds = %invoke.cont4
  %call8 = invoke %"class.boost::detail::stored_edge_property"* @_ZSt22__uninitialized_copy_aIN9__gnu_cxx17__normal_iteratorIPKN5boost6detail20stored_edge_propertyIjNS2_11no_propertyEEESt6vectorIS6_SaIS6_EEEEPS6_S6_ET0_T_SF_SE_RSaIT1_E(%"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %agg.tmp, %"class.__gnu_cxx::__normal_iterator.69"* byval align 4 %agg.tmp3, %"class.boost::detail::stored_edge_property"* %7, %"class.std::allocator.23"* %call6)
          to label %invoke.cont7 unwind label %lpad

invoke.cont7:                                     ; preds = %invoke.cont5
  %9 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  %_M_impl9 = getelementptr inbounds %"struct.std::_Vector_base.22"* %9, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl9, i32 0, i32 1
  store %"class.boost::detail::stored_edge_property"* %call8, %"class.boost::detail::stored_edge_property"** %_M_finish, align 4
  ret void

lpad:                                             ; preds = %invoke.cont5, %invoke.cont4, %invoke.cont, %entry
  %10 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %11 = extractvalue { i8*, i32 } %10, 0
  store i8* %11, i8** %exn.slot
  %12 = extractvalue { i8*, i32 } %10, 1
  store i32 %12, i32* %ehselector.slot
  %13 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  invoke void @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EED2Ev(%"struct.std::_Vector_base.22"* %13)
          to label %invoke.cont10 unwind label %terminate.lpad

invoke.cont10:                                    ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont10
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val11 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val11

terminate.lpad:                                   ; preds = %lpad
  %14 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EEC2EjRKS5_(%"struct.std::_Vector_base.22"* %this, i32 %__n, %"class.std::allocator.23"* %__a) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base.22"*, align 4
  %__n.addr = alloca i32, align 4
  %__a.addr = alloca %"class.std::allocator.23"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.std::_Vector_base.22"* %this, %"struct.std::_Vector_base.22"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store %"class.std::allocator.23"* %__a, %"class.std::allocator.23"** %__a.addr, align 4
  %this1 = load %"struct.std::_Vector_base.22"** %this.addr
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.22"* %this1, i32 0, i32 0
  %0 = load %"class.std::allocator.23"** %__a.addr, align 4
  call void @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE12_Vector_implC1ERKS5_(%"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl, %"class.std::allocator.23"* %0)
  %1 = load i32* %__n.addr, align 4
  %call = invoke %"class.boost::detail::stored_edge_property"* @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE11_M_allocateEj(%"struct.std::_Vector_base.22"* %this1, i32 %1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base.22"* %this1, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl2, i32 0, i32 0
  store %"class.boost::detail::stored_edge_property"* %call, %"class.boost::detail::stored_edge_property"** %_M_start, align 4
  %_M_impl3 = getelementptr inbounds %"struct.std::_Vector_base.22"* %this1, i32 0, i32 0
  %_M_start4 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl3, i32 0, i32 0
  %2 = load %"class.boost::detail::stored_edge_property"** %_M_start4, align 4
  %_M_impl5 = getelementptr inbounds %"struct.std::_Vector_base.22"* %this1, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl5, i32 0, i32 1
  store %"class.boost::detail::stored_edge_property"* %2, %"class.boost::detail::stored_edge_property"** %_M_finish, align 4
  %_M_impl6 = getelementptr inbounds %"struct.std::_Vector_base.22"* %this1, i32 0, i32 0
  %_M_start7 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl6, i32 0, i32 0
  %3 = load %"class.boost::detail::stored_edge_property"** %_M_start7, align 4
  %4 = load i32* %__n.addr, align 4
  %add.ptr = getelementptr inbounds %"class.boost::detail::stored_edge_property"* %3, i32 %4
  %_M_impl8 = getelementptr inbounds %"struct.std::_Vector_base.22"* %this1, i32 0, i32 0
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl8, i32 0, i32 2
  store %"class.boost::detail::stored_edge_property"* %add.ptr, %"class.boost::detail::stored_edge_property"** %_M_end_of_storage, align 4
  ret void

lpad:                                             ; preds = %entry
  %5 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %6 = extractvalue { i8*, i32 } %5, 0
  store i8* %6, i8** %exn.slot
  %7 = extractvalue { i8*, i32 } %5, 1
  store i32 %7, i32* %ehselector.slot
  call void @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE12_Vector_implD1Ev(%"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val9 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val9
}

define linkonce_odr void @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE12_Vector_implC1ERKS5_(%"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %this, %"class.std::allocator.23"* %__a) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"*, align 4
  %__a.addr = alloca %"class.std::allocator.23"*, align 4
  store %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %this, %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"** %this.addr, align 4
  store %"class.std::allocator.23"* %__a, %"class.std::allocator.23"** %__a.addr, align 4
  %this1 = load %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"** %this.addr
  %0 = load %"class.std::allocator.23"** %__a.addr
  call void @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE12_Vector_implC2ERKS5_(%"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %this1, %"class.std::allocator.23"* %0)
  ret void
}

define linkonce_odr void @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE12_Vector_implC2ERKS5_(%"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %this, %"class.std::allocator.23"* %__a) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"*, align 4
  %__a.addr = alloca %"class.std::allocator.23"*, align 4
  store %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %this, %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"** %this.addr, align 4
  store %"class.std::allocator.23"* %__a, %"class.std::allocator.23"** %__a.addr, align 4
  %this1 = load %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"** %this.addr
  %0 = bitcast %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %this1 to %"class.std::allocator.23"*
  %1 = load %"class.std::allocator.23"** %__a.addr, align 4
  call void @_ZNSaIN5boost6detail20stored_edge_propertyIjNS_11no_propertyEEEEC2ERKS4_(%"class.std::allocator.23"* %0, %"class.std::allocator.23"* %1) nounwind
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %this1, i32 0, i32 0
  store %"class.boost::detail::stored_edge_property"* null, %"class.boost::detail::stored_edge_property"** %_M_start, align 4
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %this1, i32 0, i32 1
  store %"class.boost::detail::stored_edge_property"* null, %"class.boost::detail::stored_edge_property"** %_M_finish, align 4
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %this1, i32 0, i32 2
  store %"class.boost::detail::stored_edge_property"* null, %"class.boost::detail::stored_edge_property"** %_M_end_of_storage, align 4
  ret void
}

define linkonce_odr void @_ZNSaIN5boost6detail20stored_edge_propertyIjNS_11no_propertyEEEEC2ERKS4_(%"class.std::allocator.23"* %this, %"class.std::allocator.23"* %__a) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.23"*, align 4
  %__a.addr = alloca %"class.std::allocator.23"*, align 4
  store %"class.std::allocator.23"* %this, %"class.std::allocator.23"** %this.addr, align 4
  store %"class.std::allocator.23"* %__a, %"class.std::allocator.23"** %__a.addr, align 4
  %this1 = load %"class.std::allocator.23"** %this.addr
  %0 = bitcast %"class.std::allocator.23"* %this1 to %"class.__gnu_cxx::new_allocator.24"*
  %1 = load %"class.std::allocator.23"** %__a.addr, align 4
  %2 = bitcast %"class.std::allocator.23"* %1 to %"class.__gnu_cxx::new_allocator.24"*
  call void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEEEC2ERKS6_(%"class.__gnu_cxx::new_allocator.24"* %0, %"class.__gnu_cxx::new_allocator.24"* %2) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEEEC2ERKS6_(%"class.__gnu_cxx::new_allocator.24"* %this, %"class.__gnu_cxx::new_allocator.24"*) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.24"*, align 4
  %.addr = alloca %"class.__gnu_cxx::new_allocator.24"*, align 4
  store %"class.__gnu_cxx::new_allocator.24"* %this, %"class.__gnu_cxx::new_allocator.24"** %this.addr, align 4
  store %"class.__gnu_cxx::new_allocator.24"* %0, %"class.__gnu_cxx::new_allocator.24"** %.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.24"** %this.addr
  ret void
}

define linkonce_odr void @_ZNSaIN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexEEC2Ev(%"class.std::allocator.0"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.0"*, align 4
  store %"class.std::allocator.0"* %this, %"class.std::allocator.0"** %this.addr, align 4
  %this1 = load %"class.std::allocator.0"** %this.addr
  %0 = bitcast %"class.std::allocator.0"* %this1 to %"class.__gnu_cxx::new_allocator.1"*
  call void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexEEC2Ev(%"class.__gnu_cxx::new_allocator.1"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexEEC2Ev(%"class.__gnu_cxx::new_allocator.1"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.1"*, align 4
  store %"class.__gnu_cxx::new_allocator.1"* %this, %"class.__gnu_cxx::new_allocator.1"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.1"** %this.addr
  ret void
}

define linkonce_odr void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexC2Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %this.addr, align 4
  %this1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %this.addr
  %0 = bitcast %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %this1 to %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"*
  call void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config18rand_stored_vertexC2Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config18rand_stored_vertexC2Ev(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"*, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"** %this.addr, align 4
  %this1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"** %this.addr
  %m_out_edges = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this1, i32 0, i32 0
  call void @_ZNSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EEC1Ev(%"class.std::vector.21"* %m_out_edges)
  %m_property = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::rand_stored_vertex"* %this1, i32 0, i32 1
  ret void
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EEC1Ev(%"class.std::vector.21"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector.21"*, align 4
  store %"class.std::vector.21"* %this, %"class.std::vector.21"** %this.addr, align 4
  %this1 = load %"class.std::vector.21"** %this.addr
  call void @_ZNSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EEC2Ev(%"class.std::vector.21"* %this1)
  ret void
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EEC2Ev(%"class.std::vector.21"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector.21"*, align 4
  store %"class.std::vector.21"* %this, %"class.std::vector.21"** %this.addr, align 4
  %this1 = load %"class.std::vector.21"** %this.addr
  %0 = bitcast %"class.std::vector.21"* %this1 to %"struct.std::_Vector_base.22"*
  call void @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EEC2Ev(%"struct.std::_Vector_base.22"* %0)
  ret void
}

define linkonce_odr void @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EEC2Ev(%"struct.std::_Vector_base.22"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base.22"*, align 4
  store %"struct.std::_Vector_base.22"* %this, %"struct.std::_Vector_base.22"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base.22"** %this.addr
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base.22"* %this1, i32 0, i32 0
  call void @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE12_Vector_implC1Ev(%"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %_M_impl)
  ret void
}

define linkonce_odr void @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE12_Vector_implC1Ev(%"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"*, align 4
  store %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %this, %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"** %this.addr
  call void @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE12_Vector_implC2Ev(%"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %this1)
  ret void
}

define linkonce_odr void @_ZNSt12_Vector_baseIN5boost6detail20stored_edge_propertyIjNS0_11no_propertyEEESaIS4_EE12_Vector_implC2Ev(%"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"*, align 4
  store %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %this, %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"** %this.addr
  %0 = bitcast %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %this1 to %"class.std::allocator.23"*
  call void @_ZNSaIN5boost6detail20stored_edge_propertyIjNS_11no_propertyEEEEC2Ev(%"class.std::allocator.23"* %0) nounwind
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %this1, i32 0, i32 0
  store %"class.boost::detail::stored_edge_property"* null, %"class.boost::detail::stored_edge_property"** %_M_start, align 4
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %this1, i32 0, i32 1
  store %"class.boost::detail::stored_edge_property"* null, %"class.boost::detail::stored_edge_property"** %_M_finish, align 4
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::stored_edge_property<unsigned int, boost::no_property>, std::allocator<boost::detail::stored_edge_property<unsigned int, boost::no_property> > >::_Vector_impl"* %this1, i32 0, i32 2
  store %"class.boost::detail::stored_edge_property"* null, %"class.boost::detail::stored_edge_property"** %_M_end_of_storage, align 4
  ret void
}

define linkonce_odr void @_ZNSaIN5boost6detail20stored_edge_propertyIjNS_11no_propertyEEEEC2Ev(%"class.std::allocator.23"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.23"*, align 4
  store %"class.std::allocator.23"* %this, %"class.std::allocator.23"** %this.addr, align 4
  %this1 = load %"class.std::allocator.23"** %this.addr
  %0 = bitcast %"class.std::allocator.23"* %this1 to %"class.__gnu_cxx::new_allocator.24"*
  call void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEEEC2Ev(%"class.__gnu_cxx::new_allocator.24"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail20stored_edge_propertyIjNS1_11no_propertyEEEEC2Ev(%"class.__gnu_cxx::new_allocator.24"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.24"*, align 4
  store %"class.__gnu_cxx::new_allocator.24"* %this, %"class.__gnu_cxx::new_allocator.24"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.24"** %this.addr
  ret void
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EEC2EjRKSB_RKSC_(%"class.std::vector"* %this, i32 %__n, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__value, %"class.std::allocator.0"* %__a) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  %__n.addr = alloca i32, align 4
  %__value.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  %__a.addr = alloca %"class.std::allocator.0"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__value, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__value.addr, align 4
  store %"class.std::allocator.0"* %__a, %"class.std::allocator.0"** %__a.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  %0 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %1 = load i32* %__n.addr, align 4
  %2 = load %"class.std::allocator.0"** %__a.addr, align 4
  call void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EEC2EjRKSC_(%"struct.std::_Vector_base"* %0, i32 %1, %"class.std::allocator.0"* %2)
  %3 = load i32* %__n.addr, align 4
  %4 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__value.addr, align 4
  invoke void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE18_M_fill_initializeEjRKSB_(%"class.std::vector"* %this1, i32 %3, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %4)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  ret void

lpad:                                             ; preds = %entry
  %5 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %6 = extractvalue { i8*, i32 } %5, 0
  store i8* %6, i8** %exn.slot
  %7 = extractvalue { i8*, i32 } %5, 1
  store i32 %7, i32* %ehselector.slot
  %8 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  invoke void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EED2Ev(%"struct.std::_Vector_base"* %8)
          to label %invoke.cont2 unwind label %terminate.lpad

invoke.cont2:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont2
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val3

terminate.lpad:                                   ; preds = %lpad
  %9 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EEC2EjRKSC_(%"struct.std::_Vector_base"* %this, i32 %__n, %"class.std::allocator.0"* %__a) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base"*, align 4
  %__n.addr = alloca i32, align 4
  %__a.addr = alloca %"class.std::allocator.0"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.std::_Vector_base"* %this, %"struct.std::_Vector_base"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store %"class.std::allocator.0"* %__a, %"class.std::allocator.0"** %__a.addr, align 4
  %this1 = load %"struct.std::_Vector_base"** %this.addr
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %this1, i32 0, i32 0
  %0 = load %"class.std::allocator.0"** %__a.addr, align 4
  call void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE12_Vector_implC1ERKSC_(%"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl, %"class.std::allocator.0"* %0)
  %1 = load i32* %__n.addr, align 4
  %call = invoke %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE11_M_allocateEj(%"struct.std::_Vector_base"* %this1, i32 %1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base"* %this1, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl2, i32 0, i32 0
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %call, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start, align 4
  %_M_impl3 = getelementptr inbounds %"struct.std::_Vector_base"* %this1, i32 0, i32 0
  %_M_start4 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl3, i32 0, i32 0
  %2 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start4, align 4
  %_M_impl5 = getelementptr inbounds %"struct.std::_Vector_base"* %this1, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl5, i32 0, i32 1
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %2, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish, align 4
  %_M_impl6 = getelementptr inbounds %"struct.std::_Vector_base"* %this1, i32 0, i32 0
  %_M_start7 = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl6, i32 0, i32 0
  %3 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start7, align 4
  %4 = load i32* %__n.addr, align 4
  %add.ptr = getelementptr inbounds %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %3, i32 %4
  %_M_impl8 = getelementptr inbounds %"struct.std::_Vector_base"* %this1, i32 0, i32 0
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl8, i32 0, i32 2
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %add.ptr, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_end_of_storage, align 4
  ret void

lpad:                                             ; preds = %entry
  %5 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %6 = extractvalue { i8*, i32 } %5, 0
  store i8* %6, i8** %exn.slot
  %7 = extractvalue { i8*, i32 } %5, 1
  store i32 %7, i32* %ehselector.slot
  call void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE12_Vector_implD1Ev(%"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val9 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val9
}

define linkonce_odr void @_ZNSt6vectorIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE18_M_fill_initializeEjRKSB_(%"class.std::vector"* %this, i32 %__n, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__value) align 2 {
entry:
  %this.addr = alloca %"class.std::vector"*, align 4
  %__n.addr = alloca i32, align 4
  %__value.addr = alloca %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"*, align 4
  store %"class.std::vector"* %this, %"class.std::vector"** %this.addr, align 4
  store i32 %__n, i32* %__n.addr, align 4
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %__value, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__value.addr, align 4
  %this1 = load %"class.std::vector"** %this.addr
  %0 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl = getelementptr inbounds %"struct.std::_Vector_base"* %0, i32 0, i32 0
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl, i32 0, i32 0
  %1 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start, align 4
  %2 = load i32* %__n.addr, align 4
  %3 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %__value.addr, align 4
  %4 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %call = call %"class.std::allocator.0"* @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE19_M_get_Tp_allocatorEv(%"struct.std::_Vector_base"* %4)
  call void @_ZSt24__uninitialized_fill_n_aIPN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexEjSB_SB_EvT_T0_RKT1_RSaIT2_E(%"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %1, i32 %2, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %3, %"class.std::allocator.0"* %call)
  %5 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl2 = getelementptr inbounds %"struct.std::_Vector_base"* %5, i32 0, i32 0
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl2, i32 0, i32 2
  %6 = load %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_end_of_storage, align 4
  %7 = bitcast %"class.std::vector"* %this1 to %"struct.std::_Vector_base"*
  %_M_impl3 = getelementptr inbounds %"struct.std::_Vector_base"* %7, i32 0, i32 0
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %_M_impl3, i32 0, i32 1
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* %6, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish, align 4
  ret void
}

define linkonce_odr void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE12_Vector_implC1ERKSC_(%"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %this, %"class.std::allocator.0"* %__a) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"*, align 4
  %__a.addr = alloca %"class.std::allocator.0"*, align 4
  store %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %this, %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"** %this.addr, align 4
  store %"class.std::allocator.0"* %__a, %"class.std::allocator.0"** %__a.addr, align 4
  %this1 = load %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"** %this.addr
  %0 = load %"class.std::allocator.0"** %__a.addr
  call void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE12_Vector_implC2ERKSC_(%"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %this1, %"class.std::allocator.0"* %0)
  ret void
}

define linkonce_odr void @_ZNSt12_Vector_baseIN5boost6detail12adj_list_genINS0_14adjacency_listINS0_4vecSES4_NS0_9directedSENS0_11no_propertyES6_S6_NS0_5listSEEES4_S4_S5_S6_S6_S6_S7_E6config13stored_vertexESaISB_EE12_Vector_implC2ERKSC_(%"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %this, %"class.std::allocator.0"* %__a) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"*, align 4
  %__a.addr = alloca %"class.std::allocator.0"*, align 4
  store %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %this, %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"** %this.addr, align 4
  store %"class.std::allocator.0"* %__a, %"class.std::allocator.0"** %__a.addr, align 4
  %this1 = load %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"** %this.addr
  %0 = bitcast %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %this1 to %"class.std::allocator.0"*
  %1 = load %"class.std::allocator.0"** %__a.addr, align 4
  call void @_ZNSaIN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexEEC2ERKSB_(%"class.std::allocator.0"* %0, %"class.std::allocator.0"* %1) nounwind
  %_M_start = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %this1, i32 0, i32 0
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* null, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_start, align 4
  %_M_finish = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %this1, i32 0, i32 1
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* null, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_finish, align 4
  %_M_end_of_storage = getelementptr inbounds %"struct.std::_Vector_base<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex, std::allocator<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex> >::_Vector_impl"* %this1, i32 0, i32 2
  store %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"* null, %"struct.boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>, boost::vecS, boost::vecS, boost::directedS, boost::no_property, boost::no_property, boost::no_property, boost::listS>::config::stored_vertex"** %_M_end_of_storage, align 4
  ret void
}

define linkonce_odr void @_ZNSaIN5boost6detail12adj_list_genINS_14adjacency_listINS_4vecSES3_NS_9directedSENS_11no_propertyES5_S5_NS_5listSEEES3_S3_S4_S5_S5_S5_S6_E6config13stored_vertexEEC2ERKSB_(%"class.std::allocator.0"* %this, %"class.std::allocator.0"* %__a) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator.0"*, align 4
  %__a.addr = alloca %"class.std::allocator.0"*, align 4
  store %"class.std::allocator.0"* %this, %"class.std::allocator.0"** %this.addr, align 4
  store %"class.std::allocator.0"* %__a, %"class.std::allocator.0"** %__a.addr, align 4
  %this1 = load %"class.std::allocator.0"** %this.addr
  %0 = bitcast %"class.std::allocator.0"* %this1 to %"class.__gnu_cxx::new_allocator.1"*
  %1 = load %"class.std::allocator.0"** %__a.addr, align 4
  %2 = bitcast %"class.std::allocator.0"* %1 to %"class.__gnu_cxx::new_allocator.1"*
  call void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexEEC2ERKSD_(%"class.__gnu_cxx::new_allocator.1"* %0, %"class.__gnu_cxx::new_allocator.1"* %2) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorIN5boost6detail12adj_list_genINS1_14adjacency_listINS1_4vecSES5_NS1_9directedSENS1_11no_propertyES7_S7_NS1_5listSEEES5_S5_S6_S7_S7_S7_S8_E6config13stored_vertexEEC2ERKSD_(%"class.__gnu_cxx::new_allocator.1"* %this, %"class.__gnu_cxx::new_allocator.1"*) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator.1"*, align 4
  %.addr = alloca %"class.__gnu_cxx::new_allocator.1"*, align 4
  store %"class.__gnu_cxx::new_allocator.1"* %this, %"class.__gnu_cxx::new_allocator.1"** %this.addr, align 4
  store %"class.__gnu_cxx::new_allocator.1"* %0, %"class.__gnu_cxx::new_allocator.1"** %.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator.1"** %this.addr
  ret void
}

define linkonce_odr void @_ZNSt4listIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EEC2Ev(%"class.std::list"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::list"*, align 4
  store %"class.std::list"* %this, %"class.std::list"** %this.addr, align 4
  %this1 = load %"class.std::list"** %this.addr
  %0 = bitcast %"class.std::list"* %this1 to %"class.std::_List_base"*
  call void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EEC2Ev(%"class.std::_List_base"* %0)
  ret void
}

define linkonce_odr void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EEC2Ev(%"class.std::_List_base"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.std::_List_base"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.std::_List_base"* %this, %"class.std::_List_base"** %this.addr, align 4
  %this1 = load %"class.std::_List_base"** %this.addr
  %_M_impl = getelementptr inbounds %"class.std::_List_base"* %this1, i32 0, i32 0
  call void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EE10_List_implC1Ev(%"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"* %_M_impl)
  invoke void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EE7_M_initEv(%"class.std::_List_base"* %this1)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  ret void

lpad:                                             ; preds = %entry
  %0 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %1 = extractvalue { i8*, i32 } %0, 0
  store i8* %1, i8** %exn.slot
  %2 = extractvalue { i8*, i32 } %0, 1
  store i32 %2, i32* %ehselector.slot
  call void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EE10_List_implD1Ev(%"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"* %_M_impl) nounwind
  br label %eh.resume

eh.resume:                                        ; preds = %lpad
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val2
}

define linkonce_odr void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EE10_List_implC1Ev(%"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"*, align 4
  store %"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"* %this, %"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"** %this.addr
  call void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EE10_List_implC2Ev(%"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"* %this1)
  ret void
}

define linkonce_odr void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EE7_M_initEv(%"class.std::_List_base"* %this) nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::_List_base"*, align 4
  store %"class.std::_List_base"* %this, %"class.std::_List_base"** %this.addr, align 4
  %this1 = load %"class.std::_List_base"** %this.addr
  %_M_impl = getelementptr inbounds %"class.std::_List_base"* %this1, i32 0, i32 0
  %_M_node = getelementptr inbounds %"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"* %_M_impl, i32 0, i32 0
  %_M_impl2 = getelementptr inbounds %"class.std::_List_base"* %this1, i32 0, i32 0
  %_M_node3 = getelementptr inbounds %"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"* %_M_impl2, i32 0, i32 0
  %_M_next = getelementptr inbounds %"struct.std::__detail::_List_node_base"* %_M_node3, i32 0, i32 0
  store %"struct.std::__detail::_List_node_base"* %_M_node, %"struct.std::__detail::_List_node_base"** %_M_next, align 4
  %_M_impl4 = getelementptr inbounds %"class.std::_List_base"* %this1, i32 0, i32 0
  %_M_node5 = getelementptr inbounds %"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"* %_M_impl4, i32 0, i32 0
  %_M_impl6 = getelementptr inbounds %"class.std::_List_base"* %this1, i32 0, i32 0
  %_M_node7 = getelementptr inbounds %"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"* %_M_impl6, i32 0, i32 0
  %_M_prev = getelementptr inbounds %"struct.std::__detail::_List_node_base"* %_M_node7, i32 0, i32 1
  store %"struct.std::__detail::_List_node_base"* %_M_node5, %"struct.std::__detail::_List_node_base"** %_M_prev, align 4
  ret void
}

define linkonce_odr void @_ZNSt10_List_baseIN5boost9list_edgeIjNS0_11no_propertyEEESaIS3_EE10_List_implC2Ev(%"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"*, align 4
  store %"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"* %this, %"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"** %this.addr, align 4
  %this1 = load %"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"** %this.addr
  %0 = bitcast %"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"* %this1 to %"class.std::allocator"*
  call void @_ZNSaISt10_List_nodeIN5boost9list_edgeIjNS0_11no_propertyEEEEEC2Ev(%"class.std::allocator"* %0) nounwind
  %_M_node = getelementptr inbounds %"struct.std::_List_base<boost::list_edge<unsigned int, boost::no_property>, std::allocator<boost::list_edge<unsigned int, boost::no_property> > >::_List_impl"* %this1, i32 0, i32 0
  %1 = bitcast %"struct.std::__detail::_List_node_base"* %_M_node to i8*
  call void @llvm.memset.p0i8.i32(i8* %1, i8 0, i32 8, i32 4, i1 false)
  ret void
}

define linkonce_odr void @_ZNSaISt10_List_nodeIN5boost9list_edgeIjNS0_11no_propertyEEEEEC2Ev(%"class.std::allocator"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.std::allocator"*, align 4
  store %"class.std::allocator"* %this, %"class.std::allocator"** %this.addr, align 4
  %this1 = load %"class.std::allocator"** %this.addr
  %0 = bitcast %"class.std::allocator"* %this1 to %"class.__gnu_cxx::new_allocator"*
  call void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIN5boost9list_edgeIjNS2_11no_propertyEEEEEC2Ev(%"class.__gnu_cxx::new_allocator"* %0) nounwind
  ret void
}

define linkonce_odr void @_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIN5boost9list_edgeIjNS2_11no_propertyEEEEEC2Ev(%"class.__gnu_cxx::new_allocator"* %this) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.__gnu_cxx::new_allocator"*, align 4
  store %"class.__gnu_cxx::new_allocator"* %this, %"class.__gnu_cxx::new_allocator"** %this.addr, align 4
  %this1 = load %"class.__gnu_cxx::new_allocator"** %this.addr
  ret void
}

define linkonce_odr void @_ZNSt4pairIiiEC2ERKiS2_(%"struct.std::pair"* %this, i32* %__a, i32* %__b) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"struct.std::pair"*, align 4
  %__a.addr = alloca i32*, align 4
  %__b.addr = alloca i32*, align 4
  store %"struct.std::pair"* %this, %"struct.std::pair"** %this.addr, align 4
  store i32* %__a, i32** %__a.addr, align 4
  store i32* %__b, i32** %__b.addr, align 4
  %this1 = load %"struct.std::pair"** %this.addr
  %first = getelementptr inbounds %"struct.std::pair"* %this1, i32 0, i32 0
  %0 = load i32** %__a.addr, align 4
  %1 = load i32* %0, align 4
  store i32 %1, i32* %first, align 4
  %second = getelementptr inbounds %"struct.std::pair"* %this1, i32 0, i32 1
  %2 = load i32** %__b.addr, align 4
  %3 = load i32* %2, align 4
  store i32 %3, i32* %second, align 4
  ret void
}

define linkonce_odr void @_ZN5boost6detail35make_property_map_from_arg_pack_genINS_5graph8keywords3tag9color_mapENS_18default_color_typeEEC2ES6_(%"class.boost::detail::make_property_map_from_arg_pack_gen"* %this, i32 %default_value) unnamed_addr nounwind align 2 {
entry:
  %this.addr = alloca %"class.boost::detail::make_property_map_from_arg_pack_gen"*, align 4
  %default_value.addr = alloca i32, align 4
  store %"class.boost::detail::make_property_map_from_arg_pack_gen"* %this, %"class.boost::detail::make_property_map_from_arg_pack_gen"** %this.addr, align 4
  store i32 %default_value, i32* %default_value.addr, align 4
  %this1 = load %"class.boost::detail::make_property_map_from_arg_pack_gen"** %this.addr
  %default_value2 = getelementptr inbounds %"class.boost::detail::make_property_map_from_arg_pack_gen"* %this1, i32 0, i32 0
  %0 = load i32* %default_value.addr, align 4
  store i32 %0, i32* %default_value2, align 4
  ret void
}

define linkonce_odr void @_ZN5boost14adjacency_listINS_4vecSES1_NS_9directedSENS_11no_propertyES3_S3_NS_5listSEED2Ev(%"class.boost::adjacency_list"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::adjacency_list"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"class.boost::adjacency_list"* %this, %"class.boost::adjacency_list"** %this.addr, align 4
  %this1 = load %"class.boost::adjacency_list"** %this.addr
  %m_property = getelementptr inbounds %"class.boost::adjacency_list"* %this1, i32 0, i32 1
  invoke void @_ZN5boost10scoped_ptrINS_11no_propertyEED1Ev(%"class.boost::scoped_ptr"* %m_property)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %0 = bitcast %"class.boost::adjacency_list"* %this1 to %"class.boost::vec_adj_list_impl"*
  call void @_ZN5boost17vec_adj_list_implINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_6detail12adj_list_genIS6_S2_S2_S3_S4_S4_S4_S5_E6configENS_21directed_graph_helperISA_EEED2Ev(%"class.boost::vec_adj_list_impl"* %0)
  ret void

lpad:                                             ; preds = %entry
  %1 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %2 = extractvalue { i8*, i32 } %1, 0
  store i8* %2, i8** %exn.slot
  %3 = extractvalue { i8*, i32 } %1, 1
  store i32 %3, i32* %ehselector.slot
  %4 = bitcast %"class.boost::adjacency_list"* %this1 to %"class.boost::vec_adj_list_impl"*
  invoke void @_ZN5boost17vec_adj_list_implINS_14adjacency_listINS_4vecSES2_NS_9directedSENS_11no_propertyES4_S4_NS_5listSEEENS_6detail12adj_list_genIS6_S2_S2_S3_S4_S4_S4_S5_E6configENS_21directed_graph_helperISA_EEED2Ev(%"class.boost::vec_adj_list_impl"* %4)
          to label %invoke.cont2 unwind label %terminate.lpad

invoke.cont2:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont2
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val3

terminate.lpad:                                   ; preds = %lpad
  %5 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost10scoped_ptrINS_11no_propertyEED1Ev(%"class.boost::scoped_ptr"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::scoped_ptr"*, align 4
  store %"class.boost::scoped_ptr"* %this, %"class.boost::scoped_ptr"** %this.addr, align 4
  %this1 = load %"class.boost::scoped_ptr"** %this.addr
  call void @_ZN5boost10scoped_ptrINS_11no_propertyEED2Ev(%"class.boost::scoped_ptr"* %this1)
  ret void
}

define linkonce_odr void @_ZN5boost10scoped_ptrINS_11no_propertyEED2Ev(%"class.boost::scoped_ptr"* %this) unnamed_addr align 2 {
entry:
  %this.addr = alloca %"class.boost::scoped_ptr"*, align 4
  store %"class.boost::scoped_ptr"* %this, %"class.boost::scoped_ptr"** %this.addr, align 4
  %this1 = load %"class.boost::scoped_ptr"** %this.addr
  %px = getelementptr inbounds %"class.boost::scoped_ptr"* %this1, i32 0, i32 0
  %0 = load %"struct.boost::no_property"** %px, align 4
  call void @_ZN5boost14checked_deleteINS_11no_propertyEEEvPT_(%"struct.boost::no_property"* %0)
  ret void
}

define linkonce_odr void @_ZN5boost14checked_deleteINS_11no_propertyEEEvPT_(%"struct.boost::no_property"* %x) nounwind inlinehint {
entry:
  %x.addr = alloca %"struct.boost::no_property"*, align 4
  store %"struct.boost::no_property"* %x, %"struct.boost::no_property"** %x.addr, align 4
  %0 = load %"struct.boost::no_property"** %x.addr, align 4
  %isnull = icmp eq %"struct.boost::no_property"* %0, null
  br i1 %isnull, label %delete.end, label %delete.notnull

delete.notnull:                                   ; preds = %entry
  %1 = bitcast %"struct.boost::no_property"* %0 to i8*
  call void @_ZdlPv(i8* %1) nounwind
  br label %delete.end

delete.end:                                       ; preds = %delete.notnull, %entry
  ret void
}

define linkonce_odr void @_ZN12edge_printerIN5boost16on_non_tree_edgeEED2Ev(%struct.edge_printer.19* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %struct.edge_printer.19*, align 4
  store %struct.edge_printer.19* %this, %struct.edge_printer.19** %this.addr, align 4
  %this1 = load %struct.edge_printer.19** %this.addr
  %m_edge_type = getelementptr inbounds %struct.edge_printer.19* %this1, i32 0, i32 0
  call void @_ZNSsD1Ev(%"class.std::basic_string"* %m_edge_type)
  ret void
}

define linkonce_odr void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES0_INS1_16on_non_tree_edgeEEED2Ev(%"struct.std::pair.18"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.18"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.std::pair.18"* %this, %"struct.std::pair.18"** %this.addr, align 4
  %this1 = load %"struct.std::pair.18"** %this.addr
  %second = getelementptr inbounds %"struct.std::pair.18"* %this1, i32 0, i32 1
  invoke void @_ZN12edge_printerIN5boost16on_non_tree_edgeEED1Ev(%struct.edge_printer.19* %second)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %first = getelementptr inbounds %"struct.std::pair.18"* %this1, i32 0, i32 0
  call void @_ZN12edge_printerIN5boost12on_tree_edgeEED1Ev(%struct.edge_printer* %first)
  ret void

lpad:                                             ; preds = %entry
  %0 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %1 = extractvalue { i8*, i32 } %0, 0
  store i8* %1, i8** %exn.slot
  %2 = extractvalue { i8*, i32 } %0, 1
  store i32 %2, i32* %ehselector.slot
  %first2 = getelementptr inbounds %"struct.std::pair.18"* %this1, i32 0, i32 0
  invoke void @_ZN12edge_printerIN5boost12on_tree_edgeEED1Ev(%struct.edge_printer* %first2)
          to label %invoke.cont3 unwind label %terminate.lpad

invoke.cont3:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont3
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val4 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val4

terminate.lpad:                                   ; preds = %lpad
  %3 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEED2Ev(%"class.boost::bfs_visitor"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::bfs_visitor"*, align 4
  store %"class.boost::bfs_visitor"* %this, %"class.boost::bfs_visitor"** %this.addr, align 4
  %this1 = load %"class.boost::bfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::bfs_visitor"* %this1, i32 0, i32 0
  call void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES0_INS1_16on_non_tree_edgeEEED1Ev(%"struct.std::pair.18"* %m_vis)
  ret void
}

define linkonce_odr void @_ZN5boost16bgl_named_paramsINS_11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES3_INS_16on_non_tree_edgeEEEEENS_15graph_visitor_tENS_11no_propertyEED2Ev(%"struct.boost::bgl_named_params.17"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::bgl_named_params.17"*, align 4
  store %"struct.boost::bgl_named_params.17"* %this, %"struct.boost::bgl_named_params.17"** %this.addr, align 4
  %this1 = load %"struct.boost::bgl_named_params.17"** %this.addr
  %m_value = getelementptr inbounds %"struct.boost::bgl_named_params.17"* %this1, i32 0, i32 0
  call void @_ZN5boost11bfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_INS_16on_non_tree_edgeEEEED1Ev(%"class.boost::bfs_visitor"* %m_value)
  ret void
}

define linkonce_odr void @_ZN12edge_printerIN5boost12on_tree_edgeEED2Ev(%struct.edge_printer* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %struct.edge_printer*, align 4
  store %struct.edge_printer* %this, %struct.edge_printer** %this.addr, align 4
  %this1 = load %struct.edge_printer** %this.addr
  %m_edge_type = getelementptr inbounds %struct.edge_printer* %this1, i32 0, i32 0
  call void @_ZNSsD1Ev(%"class.std::basic_string"* %m_edge_type)
  ret void
}

define linkonce_odr void @_ZN12edge_printerIN5boost12on_back_edgeEED2Ev(%struct.edge_printer.13* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %struct.edge_printer.13*, align 4
  store %struct.edge_printer.13* %this, %struct.edge_printer.13** %this.addr, align 4
  %this1 = load %struct.edge_printer.13** %this.addr
  %m_edge_type = getelementptr inbounds %struct.edge_printer.13* %this1, i32 0, i32 0
  call void @_ZNSsD1Ev(%"class.std::basic_string"* %m_edge_type)
  ret void
}

define linkonce_odr void @_ZN12edge_printerIN5boost24on_forward_or_cross_edgeEED2Ev(%struct.edge_printer.15* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %struct.edge_printer.15*, align 4
  store %struct.edge_printer.15* %this, %struct.edge_printer.15** %this.addr, align 4
  %this1 = load %struct.edge_printer.15** %this.addr
  %m_edge_type = getelementptr inbounds %struct.edge_printer.15* %this1, i32 0, i32 0
  call void @_ZNSsD1Ev(%"class.std::basic_string"* %m_edge_type)
  ret void
}

define linkonce_odr void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES_IS0_INS1_12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEEED2Ev(%"struct.std::pair.8"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.std::pair.8"*, align 4
  %exn.slot = alloca i8*
  %ehselector.slot = alloca i32
  store %"struct.std::pair.8"* %this, %"struct.std::pair.8"** %this.addr, align 4
  %this1 = load %"struct.std::pair.8"** %this.addr
  %second = getelementptr inbounds %"struct.std::pair.8"* %this1, i32 0, i32 1
  invoke void @_ZNSt4pairI12edge_printerIN5boost12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEED1Ev(%"struct.std::pair.12"* %second)
          to label %invoke.cont unwind label %lpad

invoke.cont:                                      ; preds = %entry
  %first = getelementptr inbounds %"struct.std::pair.8"* %this1, i32 0, i32 0
  call void @_ZN12edge_printerIN5boost12on_tree_edgeEED1Ev(%struct.edge_printer* %first)
  ret void

lpad:                                             ; preds = %entry
  %0 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          cleanup
  %1 = extractvalue { i8*, i32 } %0, 0
  store i8* %1, i8** %exn.slot
  %2 = extractvalue { i8*, i32 } %0, 1
  store i32 %2, i32* %ehselector.slot
  %first2 = getelementptr inbounds %"struct.std::pair.8"* %this1, i32 0, i32 0
  invoke void @_ZN12edge_printerIN5boost12on_tree_edgeEED1Ev(%struct.edge_printer* %first2)
          to label %invoke.cont3 unwind label %terminate.lpad

invoke.cont3:                                     ; preds = %lpad
  br label %eh.resume

eh.resume:                                        ; preds = %invoke.cont3
  %exn = load i8** %exn.slot
  %sel = load i32* %ehselector.slot
  %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0
  %lpad.val4 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1
  resume { i8*, i32 } %lpad.val4

terminate.lpad:                                   ; preds = %lpad
  %3 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
          catch i8* null
  call void @_ZSt9terminatev() noreturn nounwind
  unreachable
}

define linkonce_odr void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEED2Ev(%"class.boost::dfs_visitor"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"class.boost::dfs_visitor"*, align 4
  store %"class.boost::dfs_visitor"* %this, %"class.boost::dfs_visitor"** %this.addr, align 4
  %this1 = load %"class.boost::dfs_visitor"** %this.addr
  %m_vis = getelementptr inbounds %"class.boost::dfs_visitor"* %this1, i32 0, i32 0
  call void @_ZNSt4pairI12edge_printerIN5boost12on_tree_edgeEES_IS0_INS1_12on_back_edgeEES0_INS1_24on_forward_or_cross_edgeEEEED1Ev(%"struct.std::pair.8"* %m_vis)
  ret void
}

define linkonce_odr void @_ZN5boost16bgl_named_paramsINS_11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES2_IS3_INS_12on_back_edgeEES3_INS_24on_forward_or_cross_edgeEEEEEENS_15graph_visitor_tENS_11no_propertyEED2Ev(%"struct.boost::bgl_named_params"* %this) unnamed_addr inlinehint align 2 {
entry:
  %this.addr = alloca %"struct.boost::bgl_named_params"*, align 4
  store %"struct.boost::bgl_named_params"* %this, %"struct.boost::bgl_named_params"** %this.addr, align 4
  %this1 = load %"struct.boost::bgl_named_params"** %this.addr
  %m_value = getelementptr inbounds %"struct.boost::bgl_named_params"* %this1, i32 0, i32 0
  call void @_ZN5boost11dfs_visitorISt4pairI12edge_printerINS_12on_tree_edgeEES1_IS2_INS_12on_back_edgeEES2_INS_24on_forward_or_cross_edgeEEEEED1Ev(%"class.boost::dfs_visitor"* %m_value)
  ret void
}

define internal void @_GLOBAL__I_a() section ".text.startup" {
entry:
  call void @__cxx_global_var_init()
  call void @__cxx_global_var_init1()
  ret void
}

!0 = metadata !{i32 9930290, i32 9930297}         
!1 = metadata !{i32 9930602, i32 9930609}         
